Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
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

Makro ausführen wenn bestimmte Zeilen nicht Leer sind

Makro ausführen wenn bestimmte Zeilen nicht Leer sind
30.10.2023 15:32:28
Larsli
Hallo Zusammen
Ich bin neu hier und hoffe das ich mein Anliegen am richtigen Ort stelle.


Ich Habe eine Tabelle in der Werte eingetragen werden und zwar von D bis H und in den Zeilen von 11 bis 31.

Nun möchte ich das wenn in Spalte H ein Wert ist, dass er prüft ob die zahl in Spalte F grösser als 3000 ist.
Wenn das der fall ist soll er den Wert durch 2 rechnen und anschliessend die Ganze Zeile von D bis H Kopieren und eine Zeile drunter eine Kopie Einsetzten.

Wichtig ist Allerdings das dass Makro immer Ausgeführt wird sobald in der Spalte H ein wert Steht.

Ich hoffe ich habe mich verständlich ausgedrückt so das mir jemand helfen kann.

Ist einfach zu komplex für mein Wissen.

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

Betreff
Datum
Anwender
Anzeige
AW: Makro ausführen wenn bestimmte Zeilen nicht Leer sind
30.10.2023 16:51:42
UweD
Hallo


- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- rechts den Code reinkopieren

Bei Eingabe in einer Zelle in Spalte H läuft der Code ab.


Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo Fehler
Const APPNAME = "Worksheet_Change"

If Not Intersect(Target, Columns("H")) Is Nothing Then
With Target.Offset(0, -2)
If .Value > 3000 Then
Application.EnableEvents = False
.Value = .Value / 2
.EntireRow.Offset(1).Insert

With Cells(Target.Row, "D").Resize(1, 5)
.Copy .Offset(1, 0)
End With
End If
End With

End If
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number > 0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
& "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub


LG UweD
Anzeige
AW: Makro ausführen wenn bestimmte Zeilen nicht Leer sind
30.10.2023 17:01:55
Larsli
Hallo UweD

Vielen Dank für deine rasche Antwort funktioniert alles super.

Ist es auch möglich das wenn das Makro erkennt das der Wert grösser als 3000 ist, dass bei der ersten Zeile in Spalte H ein "D" und in der zweiten Zeile die ja die Kopie ist in der Spalte G ein "D" eingesetzt wird
AW: Makro ausführen wenn bestimmte Zeilen nicht Leer sind
30.10.2023 17:10:45
Uduuh
Hallo,
    If Not Intersect(Target, Columns("H")) Is Nothing Then

With Target.Offset(0, -2)
If .Value > 3000 Then
Application.EnableEvents = False
.Value = .Value / 2
.EntireRow.Offset(1).Insert

With Cells(Target.Row, "D").Resize(1, 5)
.Copy .Offset(1, 0)
End With
End If
End With
Target="D"
Target.OffSet(1, -1)="D"
End If

Gruß aus'm Pott
Udo
Anzeige
AW: Makro ausführen wenn bestimmte Zeilen nicht Leer sind
30.10.2023 18:02:23
Larsli
Super Danke

Habe jetzt nur noch zwei kleine Probleme, hoffe ich zumindest.

1. Ist es möglich das Makro nur auf die Zeilen 11 bis 39 beschränken?
2. Habe ich das Problem das es eine Zeile einfügt aber dann nicht eine wieder löscht da ich nur von Zeile 11 bis 39 die Tabelle haben möchte
AW: Makro ausführen wenn bestimmte Zeilen nicht Leer sind
31.10.2023 09:16:17
UweD
Hallo

zu 1)

Ändere die entsprechende Zeile in:
    If Not Intersect(Target, Range("H11:H39")) Is Nothing Then



zu 2)
keine Ahnung was du möchtest.


LG UweD

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige