Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1860to1864
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 ab 2 Texten starten

Makro ab 2 Texten starten
05.12.2021 11:11:34
Christian
Hallo,
ich bitte euch um eine kleine Änderung an am Ende stehendem Makro, meine VBA Kenntnisse reichen leider nicht aus.
Bislang reagiert das Makro auf eine Eingabe in Spalte B und macht dann das was es halt macht und auch tun soll.
Bei der Eingabe von mehr als 132 Zeilen fügt es noch eine Leerzeile ein.
Alles schön und gut.
Ist es möglich, dass das Makro nur dann startet, wenn ich mindestens 2 Zeilen einfüge?
Mir geht es speziell darum, dass ich einzelne Zellen in Spalte B überschreiben kann, ohne dass das Makro ausgeführt wird.
Hat da jemand eine Lösung für mich? Das was das Makro bislang macht, soll auch weiterhin gemacht werden, nur halt nicht mehr wenn ich eine einzelne Zelle in Spalte B überschreibe.
Gruß
Christian

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fehler
Const APPNAME = "Worksheet_Change"
Dim RNG As Range, TMP As String, MMAx As Integer
Dim Z0 As Integer, Z1 As Integer, Sp As Integer, i As Long
'Nur Spalte B berücksichtigen
Set RNG = Intersect(Columns(2), Target)
Z0 = 2 'Erster Durchlauf aus 2. Wert
Z1 = 3 'StartZeile im Bereich
MMAx = 132
If Target.Column = 2 And Target.Columns.Count = 1 Then
If WorksheetFunction.CountBlank(RNG) = RNG.Count Then Exit Sub ' falls nur Leerzellen
Application.ScreenUpdating = False
Application.EnableEvents = False
For i = Z0 To RNG.Count Step 4
TMP = Target.Cells(i) 'der aktuelle Text
If i = Z0 Then i = Z0 - 3 ' von 2 auf 3 ändern
'Zählen, ob Text schon im Zielbereich vorhanden idt
If WorksheetFunction.CountIf(Target.Cells(1).Resize(1, Sp + 1), TMP) = 0 Then
'wenn neu, dann anfügen
Target.Cells(1).Offset(0, Sp) = TMP
Sp = Sp + 1
End If
Next
'Einfügebereich löschen, außer erste Zelle
RNG.Offset(1, 0).Resize(RNG.Count - 1).ClearContents
'Leerzeile
If RNG.Count > MMAx Then
Rows(Target.Row + 1).Insert
End If
Application.EnableEvents = True
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

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro ab 2 Texten starten
05.12.2021 11:16:35
Hajo_Zi

If Target.Column = 2 And Target.Columns.Count = 1 And InStr(Target, Chr(10)) > 0 Then
GrußformelHomepage
In diesem Forum bekomme nur selten eine Mailbenachrichtigung, weitere Antworten sind zufällig.
AW: Makro ab 2 Texten starten
05.12.2021 11:34:01
Christian
leider sagt er Fehlertyp 13, Typen unverträglich... warum auch immer
wo ist der Fehler?
mit Prüfung Text 2. Zeile
05.12.2021 11:37:45
Hajo_Zi

If Target.Column = 2 And Target.Columns.Count = 1 And InStr(Target, Chr(10)) > 0 _
And Len(Mid(Target, InStr(Target, Chr(10)) + 1)) > 0 Then
Gruß Hajo
Anzeige
AW: mit Prüfung Text 2. Zeile
05.12.2021 11:43:07
Christian
Hallo Hajo,
ich habe jetzt mit

If Target.Column = 2 And Target.Columns.Count = 1 And Target.Rows.Count > 1 Then
eine funktionierende Lösung. Trotzdem danke für deine Mühe
Christian
AW: mit Prüfung Text 2. Zeile
06.12.2021 06:29:41
Hajo_Zi
Hallo Christian,
Gut es muss in der 2 Zeile kein Text vorhanden sein.
Gruß Hajo
AW: mit Prüfung Text 2. Zeile
06.12.2021 06:33:25
Hajo_Zi
Hallo Christian,
Gut es muss in der 2 Zeile kein Text vorhanden sein.
Gruß Hajo
Anzeige
AW: Makro ab 2 Texten starten
05.12.2021 11:31:59
Beverly
Hi Christian,
nach diesem Prinzip:

If Target.Rows.Count > 1 Then
MsgBox 1 '

GrußformelBeverly's Excel - Inn
PS: ich erhalte leider keine Mailbenachrichtigung mehr über eingegangene Antworten in den Threads - deshalb kann es etwas dauern, bis ich auf Beiträge antworte.
Anzeige
AW: Makro ab 2 Texten starten
05.12.2021 11:37:30
Christian
Hallo Karin,
vielen Dank

If Target.Column = 2 And Target.Columns.Count = 1 And Target.Rows.Count > 1 Then
funktioniert.
Schönes Restwochenende
Christian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige