Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1572to1576
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
Do Loop schleife
10.08.2017 10:52:37
lutz
Hallo zusammen,
ich habe eine Tabelle, in der Adressen bestimmte Daten zugeordnet sind.
Ich möchte nun mit einer Schleife die Spalte B nach einer vorher festgelegten Nummer durchsuchen und bei einem Treffer die Adresse mit den in Textboxen eingetragene Werte ändern.
Leider ändert sich bisher gar nichts
Vielen Dank schonmal
Hier mein Code
Private Sub Adressänderung()
Dim letzteZeile As Long     'letzte Zeile in Tabelle1
Dim findNummer As Long
Dim Gefunden As Range
Dim Firstaddress As Range
letzteZeile = Tabelle1.Range("B" & Rows.Count).End(xlUp).Row
With Worksheets("Tabelle1").Range("B6:B" & letzteZeile)
findNummer = Tx_KST
Set Gefunden = .Find(what:=findNummmer, LookIn:=xlValues)
If Not KSTgefunden Is Nothing Then
Firstaddress = Gefunden.Address
Do
Gefunden.Offset(0, -1).Value = Tx_1.value
Gefunden.Offset(0, 1).Value = Tx_2.value
Gefunden.Offset(0, 2).Value = Tx_3.value
Gefunden.Offset(0, 3).Value = Tx_4.value
Gefunden.Offset(0, 4).Value = Tx_5.value
Set Gefunden = .FindNext(Gefunden)
If Gefunden Is Nothing Then
GoTo DoneFinding
End If
Loop While Not Gefunden Is Nothing And Gefunden.Address  Firstaddress
End If
DoneFinding:
End With
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Do Loop schleife
10.08.2017 11:10:03
Robert
Hallo,
wo kommen denn die Variablen Tx_KST und Tx_1 bis Zx_5 her? Außerdem suchst Du nach der Variable findNummmer. Definiert wurde aber die Variable findNummer (3 mal m statt 2 mal m). Die Variable KSTgefunden wurde nicht definiert. Muss zwar nicht, wäre aber besser.
Gruß
Robert
AW: Do Loop schleife
10.08.2017 11:36:25
lutz
Hallo
Die Variablen Tx_KST und Tx_1 bis Tx_5 kommen aus einer Userform.
Naja bei den ms ist nur beim kopieren eins dazugekommen.
Die Variable KSTgefunden muss auch Gefunden sein ( von mir falsch bezeichnet)
Funktioniert aber noch nicht...
Gruß lutz
AW: Do Loop schleife
10.08.2017 12:56:59
Robert
Hallo,
wie gesagt suchst Du in der Zeile
 Set Gefunden = .Find(what:=findNummmer, LookIn:=xlValues)

nach findNummmer (mit 3 m). findNummmer gibt es aber nicht. Eine Zeile höher heißt die Variable, nach der gesucht werden soll, nämlich findNummer (mit 2 m). Also kann der Code auch nichts finden und ändern.
Gruß
Robert
Anzeige
AW: Do Loop schleife
10.08.2017 13:25:20
lutz
Hallo
ja das habe ich geändert.
Private Sub Adressänderung_Datenbank()
Dim letzteZeile As Long     'letzte Zeile in Tabelle Datenbank
Dim findNummer As Long
Dim Gefunden As Range
Dim Firstaddress As Range
letzteZeile = Tabelle1.Range("B" & Rows.Count).End(xlUp).Row
With Worksheets("Datenbank").Range("B6:B" & letzteZeile)
findKST = Tx_KST
Set Gefunden = .Find(what:=findNummer, LookIn:=xlValues)
If Not Gefunden Is Nothing Then
Firstaddress = Gefunden.Address
Do
Gefunden .Offset(0, -1).Value = Tx_1
Gefunden .Offset(0, 1).Value = Tx_2
Gefunden .Offset(0, 2).Value = Tx_3
Gefunden .Offset(0, 3).Value = Tx_4
Set Gefunden = .FindNext(Gefunden)
If Gefunden Is Nothing Then
GoTo DoneFinding
End If
Loop While Not Gefunden Is Nothing And Gefunden.Address  Firstaddress
End If
DoneFinding:
End With
End Sub
Das mit Finden müsste jetzt stimmen aber der Code ändert noch nichts.
Gruß Lutz
Anzeige
AW: Do Loop schleife
10.08.2017 13:38:13
Robert
Hallo,
jetzt suchst Du in der Zeile
Set Gefunden = .Find(what:=findNummer, LookIn:=xlValues)

nach findNummer, als Suchvariable hast Du aber eine Zeile höher findKST festgelegt.
Gruß
Robert
AW: Do Loop schleife
10.08.2017 14:16:32
lutz
Hallo
ich stehe leider etwas auf dem Schlauch.
hier mein aktueller Code(die Bezeichnungen haben sich etwas geändert sonst ist er gleich)
das Suchkriterium stimmt nun.
aber was nun?
Gruß
Private Sub Adressänderung_Datenbank()
Dim letzteZeile As Long     'letzte Zeile in Tabelle Datenbank
Dim findKST As String
Dim KSTgefunden As Range
Dim Firstaddress As Range
letzteZeile = Tabelle1.Range("B" & Rows.Count).End(xlUp).Row
With Worksheets("Datenbank").Range("B6:B" & letzteZeile)
findKST = Tx_KST
Set KSTgefunden = .Find(what:=findKST, LookIn:=xlValues)
If Not KSTgefunden Is Nothing Then
Firstaddress = KSTgefunden.Address
Do
KSTgefunden.Offset(0, -1).Value = Tx_1
KSTgefunden.Offset(0, 1).Value = Tx_2
KSTgefunden.Offset(0, 2).Value = Tx_3
KSTgefunden.Offset(0, 3).Value = Tx_4
KSTgefunden.Offset(0, 4).Value = Tx_5
Set KSTgefunden = .FindNext(KSTgefunden)
If KSTgefunden Is Nothing Then
GoTo DoneFinding
End If
Loop While Not KSTgefunden Is Nothing And KSTgefunden.Address  Firstaddress
End If
DoneFinding:
End With
End Sub

Anzeige
AW: Do Loop schleife
10.08.2017 18:58:11
Robert
Hallo,
ich habe noch einen Fehler in Deinem Code entdeckt. Die Variable Firstaddress ist falsch deklariert. Der Ausdruck KSTgefunden.Address liefert die Zell-Adresse des gefundenen Suchausdrucks als String-Wert zurück, also muss auch die Variable als String-Variable deklariert sein.
Dim Firstaddress As String

Gruß
Robert
AW: Do Loop schleife
10.08.2017 21:01:40
lutz
Hallo Robert,
super jetzt funktioniert es einwandfrei.
Daran hat gelegen.
Danke nochmal
Gruß Lutz

218 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige