Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1960to1964
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

excel Makro nach Fertigstellung wiederholen

excel Makro nach Fertigstellung wiederholen
25.01.2024 00:57:23
Sasha
Hallo Leute

Ich hab ein Makro welches diverse Funkionen ausführt. Unter anderem auch andere Dateien und Arbeitsblätter öffnet, da Daten eingibt oder Daten daraus holt. Diese Daten werden dann auch in der Ausgangsdatei eingegeben, dann werden alle bearbeiteten / geöffneten Dateien gespeichert. - HIER IST DANN DAS ENDE DES / DER MAKROS ERREICHT.

Das ganze dient in der Buchhaltung der Kontrolle der Debitoren. Stellt euch das so vor:

DebiListe.xlsm (Hauptdatei)
- Ein Makro wird ausgeführt -> Mahnstufe wird bestimmt -> Mahnung1.xlsm wird gestartet, ausgefüllt und die Mahnung wird gespeichert als .xlsm und .PDF im jeweiligen Pfad

- Wenn weitere überfällige Debi-Rechnungen bestehen -> Makro nochmals ausführen (Mahn1, Mahn2, Mahn3).

Nun, starte ich das Makro in der Debiliste von Hand "Klick auf Button" oder "F5" in VBA dann werden alle Schritte ausgeführt und die Mahnung wird gespeichert. Ist die Mahnung gespeichert, kann durch einen Klick auf den gleichen Button die nächste Mahnung erstellt werden. Genau diesen schritt möchte ich eben automatisieren. Hab schon verschiedene Wege probiert, nichts funktioniert (Do Loop, Loop If etc. etc. etc.).

Hat jemand eine Idee?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: excel Makro nach Fertigstellung wiederholen
25.01.2024 06:56:52
ralf_b
dazu solltest du wenigsten die betreffenden Zellbereiche mitteilen.
Die Schleife über die Zellen einer Spalte ,welche auf bestimmten Merkmale geprüft werden soll, ist Grundlagenwissen und mit Sicherheit bei Youtube und co oder chatgpt , copilot, bingchat zu finden. Dort wo die Msgbox ausgegeben wird schreibst du den Aufruf deines Makros rein.

eine schnell hingeschrieben Frage in meine bingchat gibt das zurück.
Sub MarkerPrüfen()

Dim Zelle As Range
For Each Zelle In Range("A1:A200")
If InStr(1, Zelle.Value, "mahnen") > 0 Then
MsgBox "Die Zelle " & Zelle.Address & " enthält das Markerwort 'mahnen'."
End If
Next Zelle
End Sub


Anzeige
AW: excel Makro nach Fertigstellung wiederholen
25.01.2024 09:50:05
Sasha
Ich hab mal folgendes geschrieben zum testen. Makro wird nach Abschluss aber wieder nicht wiederholt:

Sub Mahn_1_rep()

Application.ScreenUpdating = True

Dim foundCell As Range
Set foundCell = Cells.Find(What:="Fällig", After:=ActiveCell, LookIn:=xlFormulas2, LookAt:=xlPart, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

If Not foundCell Is Nothing Then
' Found cell is now stored in the foundCell variable
'foundCell.Activate ' If activation is necessary

MsgBox "Mehungen gefunden!"
' You can perform further operations with foundCell here
Else
' Handle case where cell is not found
MsgBox "Mehungen nicht gefunden"
Exit Sub

End If


'ActiveWorkbook.Save

On Error Resume Next
Set wBook = Workbooks("Mahnung_1.xlsm")

If wBook Is Nothing Then 'Not open

Selection.Copy

Workbooks.Open Filename:= _
"V:\Excel\Mahnung_1.xlsm"

Windows("Mahnung_1.xlsm").Activate

[L11] = Date

Windows("DebiListe.xlsm").Activate

Selection.Offset(0, -1).Select

Selection.Copy

Windows("Mahnung_1.xlsm").Activate

Range("L12").Select

ActiveSheet.Paste

Windows("DebiListe.xlsm").Activate

Selection.Offset(0, 1).Select

Selection.Copy

Windows("Mahnung_1.xlsm").Activate

Range("A29").Select

ActiveSheet.Paste

Set wBook = Nothing
On Error GoTo 0

Else 'It is open

Selection.Copy

Windows("Mahnung_1.xlsm").Activate

If IsEmpty(Cells(29, 1).Value) Then

Windows("DebiListe.xlsm").Activate

Selection.Offset(0, -1).Select

Selection.Copy

Windows("Mahnung_1.xlsm").Activate

Range("L12").Select

ActiveSheet.Paste

Windows("DebiListe.xlsm").Activate

Selection.Offset(0, 1).Select

Selection.Copy

Windows("Mahnung_1.xlsm").Activate

Range("A29").Select



Else

Range("A43").End(xlUp).Select
Selection.Offset(1, 0).Select


End If

ActiveSheet.Paste

Set wBook = Nothing
On Error GoTo 0
End If

Application.Run "'Mahnung_1.xlsm'!Druck"


End Sub

Anzeige
AW: excel Makro nach Fertigstellung wiederholen
25.01.2024 10:39:55
GerdL
Auch hallo.

Das 2. Mal wird A29 (wo auch immer) nicht mehr leer sein oder eine "falsche" Tabelle ist ausgewählt.
Teste mit der F8-Taste im Einzelschrittmodus.
Deklariere die Blätter u. Zellen korrekt. (Workbooks - Worksheets - Range oder Cells)
Verzichte auf Select u. Selection im Code.


Gruß Gerd
AW: excel Makro nach Fertigstellung wiederholen
25.01.2024 12:11:04
Sasha
Hallo Gerd, das habe ich ja schon. Wie gesagt mit "F5" läuft das Makro fehlerfrei durch, die Mahnung wird sauber erstellt aber eben, keine Wiederholung des Makros.
AW: excel Makro nach Fertigstellung wiederholen
27.01.2024 13:51:57
ralf_b
in der Hoffnung das ich deine unklaren Erläuterungen richtig umgesetzt habe ,hier mal ein Ansatz.
Uns ist schon klar bei welchem Level mit VBA du gerade bist. Der Code ist ungetestet, da man das ohne die zugrundeliegende Datei nicht testen kann.
Die Kommentare im Code bitte beachten.

Sub Mahn_1_rep()


Dim wbdebi As Workbook, wbmahn As Workbook, Zelle As Range
Dim i&

Application.ScreenUpdating = False

Set wbdebi = ThisWorkbook 'oder Workbooks("DebiListe.xlsm") je nachdem wo dieser Code steht
Set wbmahn = getMahnungWB


'schleife über eine spalte in der "fällig" gesucht werden soll
'Die Spaltenbezeichnung selbst korrigieren
For Each Zelle In wbdebi.Worksheets("blattname").Range("B1:B200")

If InStr(1, Zelle.Value, "fällig") > 0 Then
i = i + 1
With wbmahn.Worksheets(1)
.Range("L11") = Date
.Range("L12") = Zelle.Offset(, -1) 'diese Zelle.offset anpassen, da bei dir unklar
.Range("A29") = Zelle.Offset(, 1) 'diese Zelle.offset anpassen, da bei dir unklar

Application.Run wbmahn.Name & "!Druck" 'druck makro prüfen ob Referenzen passen
End With


End If
Next Zelle
Application.ScreenUpdating = True


If i = 0 Then
MsgBox "fällig nicht gefunden"
Else
MsgBox "fällig wurde " & i & " mal gefunden."
End If

Application.ScreenUpdating = True

wbmahn.close false
Set wbmahn = Nothing
Set wbdebi = Nothing

End Sub

Function getMahnungWB() As Workbook

On Error Resume Next
Set wbook = Workbooks("Mahnung_1.xlsm")
If wbook Is Nothing Then 'Not open
Set wbook = Workbooks.Open(Filename:="V:\Excel\Mahnung_1.xlsm")
End If
Set getMahnungWB = wbook
On Error GoTo 0

End Function
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige