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

ist Zelle nicht leer -> überspringen @ Erich G.

Forumthread: ist Zelle nicht leer -> überspringen @ Erich G.

ist Zelle nicht leer -> überspringen @ Erich G.
06.07.2005 12:20:52
Danilo
Hallo Forum,
ich habe gestern zu folgendem Thema: bestimmter Inhalt einer Zelle kopieren einen Code bekommen, danke nochmal dafür an Erich G.
Jetzt habe ich aber feststellen müssen das auch in Zellen die bereits einen Wert
enthalten nicht übersprungen werden was aber sein sollte da die Werte schon korrekt sind.
Dieser Code sucht in Spalte 27 nach einer 5stelligen Zahl und kopiert diese dann in die Zelle in Spalte J.
Wenn aber in der Zelle der Spalte J schon erwas steht, soll nichts kopiert werden.
Danke für eure Hilfe

Sub PLZ_finden_im_Freitext_und_kopieren()
Dim zz&, ii%, jj%, tt As String * 1, gefund As Boolean
For zz = Cells(Rows.Count, 27).End(xlUp).Row To 2 Step -1 '2 To 100
For ii = 1 To Len(Cells(zz, 27)) - 4
gefund = True
tt = Mid(Cells(zz, 27), ii, 1)
If tt >= "0" And tt <= "9" Then
For jj = 1 To 4
tt = Mid(Cells(zz, 27), ii + jj, 1)
If tt < "0" Or tt > "9" Then
gefund = False
ii = ii + jj - 1
Exit For
End If
If Not gefund Then Exit For
Next jj
If gefund Then
If Not IsEmpty(Cells(zz, 10)) Then
MsgBox "In Zelle " _
& Cells(zz, 27).Address(RowAbsolute:=False, ColumnAbsolute:=False) _
& " kommt mehr als eine fünfstellige Zahl vor:" _
& Chr(13) & Chr(13) & Cells(zz, 10).Text & "  ist gespeichert, " _
& Chr(13) & Mid(Cells(zz, 27).Text, ii, 5) & "  wurde noch gefunden"
Else
Cells(zz, 10).Value = Mid(Cells(zz, 27), ii, 5)
End If
ii = ii + 4
End If
End If
Next ii
Next zz
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: ist Zelle nicht leer -> überspringen @ Erich G.
06.07.2005 14:00:06
Harald
Hi Danilo,
bin zwar nicht der Gesuchte, aber ich hab die verantwortliche Stelle
If Not IsEmpty(Cells(zz, 10)) Then
MsgBox '...
überprüft.
Läuft ohne Probleme.
Alternativ könntest Du statt If Not IsEmpty ... ,diese Zeile mal testen
If cells(zz,10).value "" Then
Gruß
Harald
Anzeige
AW: ist Zelle nicht leer -> überspringen @ Erich G
06.07.2005 14:02:17
Erich
Hallo Danilo,
die Zeile einfach zu überspringen, wenn in J schon ein Wert steht, finde ich gefährlich.
1. Der in J gespeicherte Wert könnte alt/falsch sein.
2. Im Freitext könnte mehr als eine PLZ stehen.
Auch bisher wurde kein bereits gespeicherter Wert in J geändert - es wurde nur eine Meldung (per MsgBox) ausgegeben. Ich habe den Code nun so geändert, dass die Meldung nicht mehr kommt, wenn die schon gespeicherte mit der gefundenen PLZ übereinstimmt:
Option Explicit
Sub PLZ_finden()
Dim zz&, ii%, jj%, tt As String * 1, gefund As Boolean
Const qs = 27, zs = 10                                  ' Quell- und Zielspalte
For zz = 2 To Cells(Rows.Count, qs).End(xlUp).Row       ' ab Zeile 2 bis Ende
For ii = 1 To Len(Cells(zz, qs)) - 4
gefund = True
tt = Mid(Cells(zz, qs), ii, 1)
If tt >= "0" And tt <= "9" Then
For jj = 1 To 4
tt = Mid(Cells(zz, qs), ii + jj, 1)
If tt < "0" Or tt > "9" Then
gefund = False
ii = ii + jj - 1
Exit For
End If
Next jj
If gefund Then
If Not IsEmpty(Cells(zz, zs)) _
And Format(Cells(zz, zs), "00000") <> Mid(Cells(zz, qs), ii, 5) _
Then
MsgBox "In Zelle " _
& Cells(zz, qs).Address(RowAbsolute:=False, ColumnAbsolute:=False) _
& " kommt eine andere fünfstellige Zahl vor:" _
& Chr(13) & Chr(13) & Cells(zz, zs).Text & "  ist gespeichert, " _
& Chr(13) & Mid(Cells(zz, qs).Text, ii, 5) & "  wurde noch gefunden"
Else
Cells(zz, zs).Value = Mid(Cells(zz, qs), ii, 5)
End If
ii = ii + 4
End If
End If
Next ii
Next zz
End Sub

Grüße aus Kamp-Lintfort
Erich
Anzeige
Okay, danke für die Hilfe...
06.07.2005 14:07:56
Danilo
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige