Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro ausführen wenn Zeile gefüllt

Makro ausführen wenn Zeile gefüllt
07.12.2022 11:38:47
Mathias
Hallo zusammen,
ich habe eine wahrscheinlich Simple frage aber ich komme einfach selber nicht darauf. :D
Ich möchte das mein Makro ausgeführt wird sobald Zelle D8 ausgefüllt wurde.
Ich hab mal was ähnliches gebastelt aber da war es so das makro wurde ausgeführt sobald man in die Zelle ging.
Hab schon einen Code gebastelt aber irgendwie führt es das nicht aus.
Mit freundlichen Grüßen
Mathias
If Range("D8").Value = "" Then
MsgBox "Der Bereich ist leer!"
Else
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
Range("W2:W71").Select
Selection.Copy
ActiveWindow.ScrollRow = 55
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 1
Range("X2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.LargeScroll ToRight:=-1
Range("D2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
With Selection.Font
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
End With
Range("D8").Select
ActiveWindow.SmallScroll Down:=7
End If

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro ausführen wenn Zeile gefüllt
07.12.2022 11:51:35
MCO
Moin!
Du musst das Makro aus dem Modul des Tabelleblattes ausführen:

Private Sub Worksheet_Change(ByVal Target As Range)
if target.count>1 then exit sub
if target.addresslocal = "D8" and target "" then
Dein_Makro
endif
end sub 

Sub Dein_Makro()
Range("W2:W71").Copy
Range("X2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
With Range("D2")
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Font.ThemeColor = xlThemeColorLight1
.Font.TintAndShade = 0
End With
End Sub
Probiers mal aus.
Gruß, MCO
Anzeige
AW: Makro ausführen wenn Zeile gefüllt
07.12.2022 12:06:51
Yal
Hallo Mathias,
die Art von Makro, die Du suchst, nennt sich Ereignis-Procedure.
Wenn Du ins VBA gehst, in dem Du auf dem Reiter deines Blattes rechtsklickst und "Code anzeigen" auswählst, kommst Du direkt in den Codepane der Arbeitsblatt (wichtig. Nicht in einem Module-Codepane).
Oben links siehst Du eine Dropdown mit "(Allgemein)", da wählst Du "Worksheet".
Es fügt sich einen "Worksheet_SelectionChange" (den Du wahrscheinlich schon kennst), aber auch in dem Dropdown oben rechts mit "SelectionChange" wählst Du "Change". Es fügt sich einen "Worksheet_Change".
In diesem Worksheet_Change fügst Du

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D8")) Is Nothing Then
MsgBox "Es wurde was in D8 geändert."
Else
MsgBox "Es wurde was ausserhalb von D8 geändert (" & Target.Address & ")."
End If
End Sub
Einfach zuerst damit spielen. Der Rest kommt danach.
Der Makrorekorder nimmt alles auf. Auch Sachen, die für das Ausführen des Coding nicht relevant sind: ActiveWindow.ScrollColumn = 2
Versuche diese "Müll" zu erkennen und lösche es (Stufe 1: auskommentieren, nach Test, Stufe 2: löschen)
So bleibt dein Coding schlank und nachvollziehbar. Achte auf eine sauberen Einrücken. Für die Lesbarkeit viel wichtiger als Leerzeilen.
Beide zusammen ergibt folgendes:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D8")) Is Nothing Then
If Range("D8").Value = "" Then
MsgBox "Der Bereich ist leer!"
Else
Range("W2:W71").Copy
Range("X2").PasteSpecial Paste:=xlPasteValues
With Range("D2")
.PasteSpecial Paste:=xlPasteValues
.Font.ThemeColor = xlThemeColorLight1
.Font.TintAndShade = 0
End With
End If
End If
End Sub
VG
Yal
Anzeige
AW: Makro ausführen wenn Zeile gefüllt
07.12.2022 12:35:57
Mathias
Vielen vielen Dank das du dir Zeit genommen hast. Ich danke dir Yal :D

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige