1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Schleifchen

Beiträge von Schleifchen

  • Script Paused? Warum?

    • Schleifchen
    • 15. Juni 2018 um 21:51

    Hallochen, läuft jetzt fast bis Ende :) ...nur im Ordner OneDrive gibt es Probleme das die Datei:

    .849C9593-D756-4E56-8D6E-42412F2A707B von einem anderen Prozess genutzt wird und daher nicht kopiert werden kann.

    Mit:

    Code
    $Quelle="C:\Users\Stefan\OneDrive\"
    $Ziel="G:\OneDrive"
    $Nixkopieren_1 = "C:\Users\Stefan\OneDrive\.849C9593-D756-4E56-8D6E-42412F2A707B"
    RunWait(@ComSpec & " /C ROBOCOPY " & $Quelle & " " & $Ziel & " /MIR /XD " & $Nixkopieren_1, '', @SW_SHOW)

    läßt sich die Datei nicht ausschließen, kann grad keine Lösung finden...

    Danke

    Stefan

  • Script Paused? Warum?

    • Schleifchen
    • 15. Juni 2018 um 21:07

    Hallo alpines, das ist schon merkwürdig in der Konsole erscheint die Meldung:

    Code
    Neues Verz.       0    C:\Users\Stefan\Documents\Eigene Bilder\
    2018/06/15 20:54:13 FEHLER 5 (0x00000005) Zielverzeichnis wird mit Zeitstempel versehen G:\Dokumente\Eigene Bilder\
    Zugriff verweigert
    30 Sekunden wird gewartet... Wiederholung...

    Aber es gibt keinen Ordner "C:\Users\Stefan\Documents\Eigene Bilder\" und demzufolge auch nicht in G:

    Kopiere ich die Adresse in den Explorer dann verweist sie auf: C:\Users\Stefan\Pictures

    Demzufolge sollte der Ordner C:\Users\Stefan\Documents\Eigene Bilder\ in Robocopy ausgeschlossen werden, richtig? Oder gibt es noch andere Lösungen???

    Danke

    Stefan

  • Script Paused? Warum?

    • Schleifchen
    • 15. Juni 2018 um 20:50

    Wenn ich @SW_HIDE weglasse dann gibt es ne Fehlermeldung. Habe es gegen @SW_SHOW getauscht. Das Konsolefenster öffnet und schließt sich selbständig sobald Copy fertig ist....

  • Script Paused? Warum?

    • Schleifchen
    • 15. Juni 2018 um 19:48

    Ja, ich wiedermal..ich versuche grad ein kleines Tool zu Datensicherung zu basteln. Soweit funzt es auch, nur das nach dem ersten Ordnerpaar das Script eine Pause einlegt - warum???

    Code
    $Quelle="C:\Users\Stefan\Desktop\"
    $Ziel="G:\Desktop"
    RunWait(@ComSpec & " /C ROBOCOPY " & $Quelle & " " & $Ziel & " /MIR", '', @SW_HIDE)
    
    $Quelle="C:\Users\Stefan\Documents\ "
    $Ziel="G:\Dokumente"
    RunWait(@ComSpec & " /C ROBOCOPY " & $Quelle & " " & $Ziel & " /MIR", '', @SW_HIDE)
    
    $Quelle="C:\Users\Stefan\Downloads"
    $Ziel="G:\Downloads"
    RunWait(@ComSpec & " /C ROBOCOPY " & $Quelle & " " & $Ziel & " /MIR", '', @SW_HIDE)
    
    $Quelle="C:\Users\Stefan\OneDrive\"
    $Ziel="G:\OneDrive"
    RunWait(@ComSpec & " /C ROBOCOPY " & $Quelle & " " & $Ziel & " /MIR", '', @SW_HIDE)
    Alles anzeigen

    Danke

    Stefan

  • C:\>netsh wlan disconnect per AutoIt???

    • Schleifchen
    • 14. Juni 2018 um 14:11

    Krass, schaue ich mir heute Abend an, danke...

  • C:\>netsh wlan disconnect per AutoIt???

    • Schleifchen
    • 14. Juni 2018 um 13:48

    Hallo, da besteht nur eine Verbindung. Es ist alles bestens - ich war der Meinung das der WLAN-Adapter deaktiviert wird. Aber dem ist nicht so...daher alles bestens.

    Danke

    Stefan

  • C:\>netsh wlan disconnect per AutoIt???

    • Schleifchen
    • 14. Juni 2018 um 12:22

    Grandios, danke - läuft :)

    Gibt es auch einen Weg nicht die gesamte WLAN-Verbindung zu kappen sondern nur die Verbindung mit einer bestimmten SSID zu unterbrechen?

    Stefan

  • C:\>netsh wlan disconnect per AutoIt???

    • Schleifchen
    • 14. Juni 2018 um 10:22

    Hallochen, eine Frage an die Profis: mit "C:\>netsh wlan disconnect" Eingabe wird in der Windows Eingabeaufforderung die WLAN-Verbindung getrennt. Wie kann das in AutoIt umgesetzt werden? Oder gibt es andere Lösungen?

    Danke

    Stefan

  • Fenster aktivieren

    • Schleifchen
    • 28. Mai 2018 um 14:27

    Danke, damit muss ich mich noch etwas befassen...ich hatte ein Beispiel aus der Hilfe versucht anzuwenden und was ging daneben :)

    Stefan

  • Fenster aktivieren

    • Schleifchen
    • 28. Mai 2018 um 00:12

    Oh krass,

    Code
    WinActivate("Datenbank öffnen - keepass.kdbx", "")

    so funzt es!

    Danke...:-)

  • Fenster aktivieren

    • Schleifchen
    • 27. Mai 2018 um 23:40

    Hallo alpines, ich habe es mit:

    Code
    WinActivate("[CLASS:Datenbank öffnen - keepass.kdbx]", "")

    versucht - das Fenster wird nicht in den Vordergrund geholt.

    2. Versuch:

    mit Autoit WindowsInfo das Feld markiert und den angezeigten Wert in den Code eingefügt. Leider wird das Fenster nicht aktiv.

    Code
    WinActivate("[CLASS:WindowsForms10.EDIT.app.0.30495d1_r6_ad1]", "")

    Hast Du noch 'ne Idee?

    Danke

    Stefan

  • Fenster aktivieren

    • Schleifchen
    • 27. Mai 2018 um 11:00

    Nö, leider:

    Code
    WinActivate(("[Datenbank öffnen - keepass.kdbx]", ""))
    WinActivate(^ ERROR

    ???

    Danke

    Stefan

  • Fenster aktivieren

    • Schleifchen
    • 27. Mai 2018 um 10:44

    Moin allerseits, ich starte Keepass mit einem kleinen Script was auch fast perfekt läuft. Nur wenn das Anmeldefenster nicht im Vordergrund ist läuft die Anmeldung ins Leere.

    Code
    #include <MsgBoxConstants.au3>
    
    If ProcessExists("KeePass.exe")Then
       MsgBox($MB_OK,"KeePass is running","KeePass läuft bereits        ")
       Exit
    Else
       ;MsgBox($MB_OKCANCEL,"KeePass is running","KeePass wird gestartet")
       Run("C:\Program Files (x86)\KeePass Password Safe 2\keePass.exe")
       WinWait("[CLASS:Datenbank öffnen - keepass.kdbx]", "", 5)
       WinActivate(("[CLASS:Datenbank öffnen - keepass.kdbx", ""))
       Send("Passwort")
       Send("{ENTER}")
       ;MsgBox($MB_OKCANCEL,"KeePass is running","KeePass wurde gestartet")
       Sleep(2000)
       ProcessClose("C:\Program Files (x86)\KeePass Password Safe 2\keePass.exe")
    EndIf
    Alles anzeigen

    Bei WinActivate erscheint die Fehlermeldung:

    WinActivate(("[CLASS:Datenbank öffnen - keepass.kdbx", ""))

    WinActivate(^ ERROR

    Mittels WindowInfo habe ich es mit: WindowsForms10.Window.8.app.0.30495d1_r6_ad1, oder nur KeePass versucht, läuft einfach nicht. Wo kann der Fehler liegen?

    Danke für jeden Tipp

    Stefan

  • Runde 2: Daten in Excel aufteilen nach Monaten

    • Schleifchen
    • 1. März 2018 um 21:56

    Schön guten Abend, wo ist den Katastrophenalarm? Hier in Dresden ist es sehr schön friedlich, wenn auch eisig kalt und leider schneefrei...

    Zitat von Alina

    Zeile 34 und 58 im Script von Beitrag 25 habe ich mal ein ' vorgestellt. Ich finde den Sinn in den beiden Zeilen nicht

    Da hast Du recht, aber die waren bereits in der Datei ewiger_kalender_0_0_10.xlsm. Daher hab ich die Zeilen nicht gelöscht.

    Ist das Richtig so:?

    1. Jahr in Tabellenblatt "Kalender" eintragen

    2. Tabellenblätter für alle 12 Monate erstellen und in Monat_Jahr umbenennen

    3. Bereich "Gelb" in die Tabellenblätter kopieren (sind die Daten im Bereich fest oder flexibel?)

    4. Bereich "Blau" in die Tabellenblätter kopieren (sind die Daten im Bereich fest oder flexibel?)   

    Wenn die Daten flexibel sein sollen ist es sinnvoll über eine Userform nachzudenken und die Steuerung der Makros per Custom UI Editor in die Ribbonleiste einzubinden.

    Werden immer alle 4 Aufgaben in fester Reihenfolge abgearbeitet oder ist eine Teilung notwendig?

    PS: habe grad versucht Dir 'ne PN zu senden, geht nicht...oder bin ich prasslig :( ?

    Bis später

    Stefan

  • Runde 2: Daten in Excel aufteilen nach Monaten

    • Schleifchen
    • 26. Februar 2018 um 14:21

    Ja gerne, hilft mir in Punkto Vba wieder bisschen auf die Beine zu kommen :) Wenn Du magst kannste auch mal ne Gliederung aufschreiben in welchen Schritten das alles ablaufen soll. Welchen Eingaben sind flexibel, welche sind fix...usw.

    Viel Erfolg...

  • Runde 2: Daten in Excel aufteilen nach Monaten

    • Schleifchen
    • 24. Februar 2018 um 14:17

    Hallo Alina, wenn Du im Vba-Editor unter Extras->Optionen bei "Variablendeklaration erforderlich" ein Häkchen setzt hilft das ungemein bei der Fehlersuche.

    Hier der neue Versuch, ich hab alles in Schleif(ch)en gepresst:

    Code
    Dim fertig As Boolean
    
    Sub Neu_KopGelbUndBlauAusMonatsvorlageInMonate()
    ' Den gelben und blauen Bereich aus der Monatsvorlage in die Monatsblätter kopieren
    Application.DisplayAlerts = False 'schaltet die Bildschirmaktualisierung ab
       Neu_KopGelbAusMonatsvorlageInMonate
       Neu_KopBlauAusMonatsvorlageInMonate
    Application.DisplayAlerts = True
    End Sub
    
    Sub Neu_KopGelbAusMonatsvorlageInMonate()
    ' Den gelben Bereich aus der Monatsvorlage in die Monatsblätter kopieren
    Dim I
        Set wksKalender = ThisWorkbook.Sheets(1)            ' Variable setzen auf Tabelle 1 / "Kalender"
        intJahr = wksKalender.Cells(1, 2)                   ' Jahr aus Zelle "A1" auslesen
    For I = 3 To 14
        Worksheets(I).Range("A1:AE5").Clear   'Datenbereich löschen
    Next I
    
        Sheets("Monatsvorlage").Select                      ' welches Tabellenblatt wird angesprochen
        Range("G1:AE5").Select                          ' welcher Bereich des Tabellenblattes wird angesprochen
        Application.CutCopyMode = True
        Selection.Copy
        ' was soll passieren ; hier kopieren
    For I = 3 To 14
        Sheets(I).Select             ' ab hier kopieren in die Monatsblätter
        ActiveSheet.Cells(1, 7).Activate                ' aktive Zelle setzen
        ActiveSheet.Paste
    Next I
    '
    '    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
        Sheets("Kalender").Select                        ' welches auf das Tabellenblatt "Kalender"
        
        fertig = True
    End Sub
    
    Sub Neu_KopBlauAusMonatsvorlageInMonate()
    ' Den gelben Bereich aus der Monatsvorlage in die Monatsblätter kopieren
    Dim I
        Set wksKalender = ThisWorkbook.Sheets(1)            ' Variable setzen auf Tabelle 1 / "Kalender"
        intJahr = wksKalender.Cells(1, 2)                   ' Jahr aus Zelle "A1" auslesen
    For I = 3 To 14
        Worksheets(I).Range("X8:AE30").Clear   'Datenbereich löschen
    Next I
    
        Sheets("Monatsvorlage").Select                      ' welches Tabellenblatt wird angesprochen
        Range("X8:AE30").Select                          ' welcher Bereich des Tabellenblattes wird angesprochen
        Application.CutCopyMode = True
        Selection.Copy                                  ' was soll passieren ; hier kopieren
        
    For I = 3 To 14
        Sheets(I).Select             ' ab hier kopieren in die Monatsblätter
        ActiveSheet.Cells(8, 24).Activate                ' aktive Zelle setzen
        ActiveSheet.Paste
    Next I
        
    Sheets("Kalender").Select                        ' welches auf das Tabellenblatt "Kalender"
    erledigt = False
         
    End Sub
    Alles anzeigen

    Ein schönes Wochenende

    Stefan

  • Runde 2: Daten in Excel aufteilen nach Monaten

    • Schleifchen
    • 20. Februar 2018 um 21:49

    Im blauen Bereich steht in X17 keine Formel, ist das Richtig?

  • Runde 2: Daten in Excel aufteilen nach Monaten

    • Schleifchen
    • 20. Februar 2018 um 21:34

    Hallo Alina, die Höhe, Breite und Sichtbarkeit kannst Du über die Eigenschaften einstellen:

    Code
    Sub ZeileundSpaltenEigenschaften()
    Dim Zeile
    Dim Spalte
    Dim wks As Worksheet
    
    Set wks = Worksheets(3)
    wks.Columns(1).Hidden = True
    wks.Columns(2).NumberFormat = "ddd.dd.mm.yy"
    wks.Columns(2).ColumnWidth = 15
    wks.Rows(4).RowHeight = 10
    End Sub
    Alles anzeigen

    So kannst Du es in die Schleife mit einbauen und alles läuft von selbst.

    Zitat von Alina

    5.) Wie ändere ich die Reihenfolge der Tabellenblätter? "Feiertage" und "Monatsvorlage" sollen ganz nach hinten (re.) , Kalender immer ganz vorne (li.)

    Code
    Sheets.Add After:=Sheets(bytMonat + 1)

    Hier wird festgelegt wo das Tabellenblatt eingefügt wird. Lösche +1, dann passt es wieder.

    Zitat von Alina

    3.) Wenn der Kopiervorgang abgeschlossen ist, sieht man auf dem Tabellenblatt "Montasvorlage noch, was zum kopieren markiert wurde und auch dort wo es
    eingefügt wurde, sind die eingefügten ausgewählt. Wie bekomme ich das weg?

    C&P ist die langsamste Variante.

    Code
    Sub KopGelbAusMonatsvorlageInMonate_neu()
    Dim wksMonat As Worksheet
    Dim i As Byte
    Dim Zeile As Byte
    Dim Spalte As Byte
    
    For i = 3 To 14
        Set wksMonat = ThisWorkbook.Worksheets(i)
        For Spalte = 7 To 31
            For Zeile = 1 To 4
                wksMonat.Cells(Zeile, Spalte) = Spalte + i - Zeile
            Next Zeile
            wksMonat.Cells(5, Spalte).FormulaLocal = "=SUMME(" & Cells(1, Spalte).AddressLocal & ":" & Cells(4, Spalte).AddressLocal & ")"
        Next Spalte
    Next i
    End Sub
    Alles anzeigen

    Mit der Schleife entfällt das lästige selectieren :)

    Frage: Welche mathematische Grundlage liegt dem Bereich "Blau" zugrunde?

    Bis später

    Stefan

  • Runde 2: Daten in Excel aufteilen nach Monaten

    • Schleifchen
    • 17. Februar 2018 um 23:28
    Zitat von Alina

    Nachdem ich die Zeilen 19 bis 67 angepasst habe, da sonst bei den Monaten die letzten Tage fehlen, funktioniert es.

    Hallo Alina, tut mir leid...hatte es nicht nochmals geprüft. Aber die Fehler lag nicht in obigen Zeilen, die sind korrekt. Die Ursache war in Zeile 116

    Code
    intEinfuegeEnde = arintZellen(1, bytMonat - 1) - arintZellen(0, bytMonat - 1) + 7

    ist richtig. Vorher war der Einfügebereich 1 Zeile zu klein. Die letzte Zahl war vorher eine 6.

  • Runde 2: Daten in Excel aufteilen nach Monaten

    • Schleifchen
    • 17. Februar 2018 um 18:13

    Hallo Alina, so funzt der Code:-):

    Code
    Option Explicit
    
    
    Sub Daten_kopieren()
    Dim wksKalender As Worksheet
    Dim wksMonat As Worksheet
    Dim boli As Boolean
    Dim intJahr As Integer
    Dim bolSchaltjahr As Boolean
    Dim varKopierBereich
    Dim bytMonat As Byte
    Dim strMonatName As String
    Dim intEinfuegeEnde As Integer
    Dim arintZellen(1, 11)
    
    Set wksKalender = ThisWorkbook.Sheets(1)
    intJahr = wksKalender.Cells(1, 2)
    
    'prüft Schaltjahr:
    bolSchaltjahr = Day(DateSerial(intJahr, 2, 29)) = 29
    
    'Zuweisung der ArrayFelder:
    If bolSchaltjahr = False Then
            arintZellen(0, 0) = 3
            arintZellen(1, 0) = 33
            arintZellen(0, 1) = 34
            arintZellen(1, 1) = 61
            arintZellen(0, 2) = 62
            arintZellen(1, 2) = 92
            arintZellen(0, 3) = 93
            arintZellen(1, 3) = 122
            arintZellen(0, 4) = 123
            arintZellen(1, 4) = 153
            arintZellen(0, 5) = 154
            arintZellen(1, 5) = 183
            arintZellen(0, 6) = 184
            arintZellen(1, 6) = 214
            arintZellen(0, 7) = 215
            arintZellen(1, 7) = 245
            arintZellen(0, 8) = 246
            arintZellen(1, 8) = 275
            arintZellen(0, 9) = 276
            arintZellen(1, 9) = 306
            arintZellen(0, 10) = 307
            arintZellen(1, 10) = 336
            arintZellen(0, 11) = 337
            arintZellen(1, 11) = 367
    
        Else
            arintZellen(0, 0) = 3
            arintZellen(1, 0) = 33
            arintZellen(0, 1) = 34
            arintZellen(1, 1) = 62
            arintZellen(0, 2) = 63
            arintZellen(1, 2) = 93
            arintZellen(0, 3) = 94
            arintZellen(1, 3) = 123
            arintZellen(0, 4) = 124
            arintZellen(1, 4) = 154
            arintZellen(0, 5) = 155
            arintZellen(1, 5) = 184
            arintZellen(0, 6) = 185
            arintZellen(1, 6) = 215
            arintZellen(0, 7) = 216
            arintZellen(1, 7) = 246
            arintZellen(0, 8) = 247
            arintZellen(1, 8) = 276
            arintZellen(0, 9) = 277
            arintZellen(1, 9) = 307
            arintZellen(0, 10) = 308
            arintZellen(1, 10) = 337
            arintZellen(0, 11) = 338
            arintZellen(1, 11) = 368
    
    
    End If
    
    
    
    'prüfen ob Monatsblatt vorhanden ist und neu anlegen, zu kopierenden Bereich definieren:
    
    For bytMonat = 1 To 12
        Select Case bytMonat
            Case 1
                strMonatName = "Januar" & " " & intJahr
            Case 2
                strMonatName = "Februar" & " " & intJahr
            Case 3
                strMonatName = "März" & " " & intJahr
            Case 4
                strMonatName = "April" & " " & intJahr
            Case 5
                strMonatName = "Mai" & " " & intJahr
            Case 6
                strMonatName = "Juni" & " " & intJahr
            Case 7
                strMonatName = "Juli" & " " & intJahr
            Case 8
                strMonatName = "August" & " " & intJahr
            Case 9
                strMonatName = "September" & " " & intJahr
            Case 10
                strMonatName = "Oktober" & " " & intJahr
            Case 11
                strMonatName = "November" & " " & intJahr
            Case 12
                strMonatName = "Dezember" & " " & intJahr
        End Select
    
    '        Stop
            boli = False
            For Each wksMonat In ThisWorkbook.Worksheets
                If wksMonat.Name = strMonatName Then
                        boli = True
                End If
            Next
            
            If boli = False Then
                Sheets.Add after:=Sheets(bytMonat + 1)
                Worksheets(bytMonat + 2).Name = strMonatName
            End If
            
                
                
    'kopieren der monatlichen Daten nach Monatsblatt
        wksKalender.Activate
        varKopierBereich = wksKalender.Range(Cells(arintZellen(0, bytMonat - 1), 2), Cells(arintZellen(1, bytMonat - 1), 7))
        Worksheets(strMonatName).Activate
        intEinfuegeEnde = arintZellen(1, bytMonat - 1) - arintZellen(0, bytMonat - 1) + 6
        Worksheets(strMonatName).Range(Cells(7, 2), Cells(intEinfuegeEnde, 7)) = varKopierBereich
    Next bytMonat
    
    MsgBox ("Kopiervorgang ist komplett") 'kann gelöscht werden
    Sheets("Kalender").Select
    
    End Sub
    Alles anzeigen

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™