Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
944to948
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
944to948
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

zusätzliche Anfrageschleife einbauen

zusätzliche Anfrageschleife einbauen
28.01.2008 15:32:00
Silva
~f~
Hallo zusammen,
ich bekomme den letzten Baustein in meinen Code nicht reingeschrieben und hoffe auf eure Hilfe. Der Code sieht bisher ausschnittsweise folgendermassen aus:
Sub arhival()
Dim ar As Worksheet
Dim ash As Worksheet
Set ar = Sheets("Archiv")
i = 1
oi = 2
Set ash = ActiveSheet
ar.Activate
afm = ar.AutoFilterMode
ar.AutoFilterMode = False
Range("A6").Select
'dient dem finden der letzen Zahl einer automatisch generierten Laufnummer und soll diese dann fortsetzen
If Selection = "" Then
orow = 6
onum = 1
ElseIf ar.Cells(7, 1) = "" Then
orow = 7
onum = 2
Else
Selection.End(xlDown).Select
orow = Selection.Row + 1
onum = Selection + 1
End If
Cells(orow, 1) = onum
ash.Activate
... weitere Anweisungen folgen im code (hier nicht relevant)
Jetzt möchte ich gerne noch folgende Anweisung in den Code einbinden (sinngemäss). Von der Logik her soll es so aussehen:
While (Cells(a, 2).Value ash.Cells(10, 22).Value) ' mache die Aktion solange bis der Wert der aktuellen Zelle mit dem Wert in einer anderen Zelle (in einem anderen Tabellenblatt) übereinstimmt. "a" soll dabei eine Laufvariable sein, die in Spalte 2 von Zeile 6 bis zur letzten Zeile durchläuft (a=a+1).
If Cells(a, 2).Value = ash.Cells(10, 22).Value Then ' wenn die Werte übereinstimmen dann
orow = a ' setzte folgende Wert an
onum = 2
Else
a = a + 1 ' sonst gehe eine Zeile weiter
End If
Wend
und hier soll er jetzt, wenn er eine Übereinstimmung gefunden hat, bei ash. activate weitermachen ( und die gefundene Zellpoistion zum reinschreiben der Daten verwenden).
Ich hoffe ihr versteht mein Anliegen und freue mich auf eure Rückmeldungen.
Gruss, Silva

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zusätzliche Anfrageschleife einbauen
29.01.2008 07:57:00
Silva
~f~
Guten Morgen zusammen,
oja, kann mir keiner bei dem Problem helfen :-(
Hat keiner eine Idee wie ich diesen Codeteil (sinngemäss) in den schon Bestehenden einfüge
If Cells(a, 2).Value = ash.Cells(10, 22).Value Then
orow = a
onum = 2
Else
a = a + 1
End If
Wend
bereits bestehender und funktionierender Code:
...
If Selection = "" Then
orow = 6
onum = 1
ElseIf ar.Cells(7, 1) = "" Then
orow = 7
onum = 2
Else
Selection.End(xlDown).Select
orow = Selection.Row + 1
onum = Selection + 1
End If
Cells(orow, 1) = onum
ash.Activate
...
oder ist vielleicht nicht klar was ich gerne möchte?
Kann mir nicht vorstellen, dass das für euch Excelprofis ein Problem darstellt? ;-)
lg und einen schönen Tag
Silva

Anzeige
AW: zusätzliche Anfrageschleife einbauen
29.01.2008 07:58:00
Silva
sorry, hab vergessen das Häkchen für "noch offen" zu setzen.
Gruss, Silva

AW: zusätzliche Anfrageschleife einbauen
29.01.2008 10:21:00
Jan3
Hi Silva,
Eine Beispielmappe mit Deinem bisherigem Code wäre sinnvoll.
Jan

AW: zusätzliche Anfrageschleife einbauen
30.01.2008 08:55:00
Silva
Hallo, da bin ich wieder :-)
habe deinen Tipp befolgt und hier ist die Datei:

Die Datei https://www.herber.de/bbs/user/49515.xls wurde aus Datenschutzgründen gelöscht


Sie besteht aus einem Formular und einem Archiv. Über die zwei Buttons oben im Formular können neue Daten gespeichert werden (erhalten dann händisch neue eindeutige einmalige Nummer --> im Feld Angabe1 e.g. Test13) ODER man ruft über "Laden" Daten erneut aus dem Archiv auf, ergänzt / ändert diese und speichert sie schlussendlich wieder über archivieren. Und hier liegt mein Problem.
Wenn die geänderten Daten abgespeichert werden legt er eine neue Zeile im Archiv an (siehe rot markierte Zeile im Archiv) obwohl er die bereits bestehende finden und überschreiben sollte (ich habe sie ja über die Angabe 1 geladen, d.h. er soll sie auch unter Angabe1 -->Test1 wieder abspeichern / bzw. überschreiben!!!
Jetzt weiss ich nicht wie ich das in den Code einpflegen soll. Die Vorschläge habe ich ja in den Posts vorher schon geschrieben.
Hoffe auf Vorschläge, Ideen, etc. und danke allen fleissigen Helfern schonmal vorab!?
Gruss. Silva

Anzeige
AW: zusätzliche Anfrageschleife einbauen
30.01.2008 08:55:56
Silva
und nochmal vergessen "Frage offen" anzuklicken ;-)

AW: zusätzliche Anfrageschleife einbauen
31.01.2008 06:30:00
Jan3
Hi Silva,
Anbei habe ich Deinen VBA-Code in einer neuen Prozedur angepaßt und Deiner Befehlsschaltfläche zugeordnet. Teste es mal durch.
https://www.herber.de/bbs/user/49538.xls
Jan

AW: Funktioniert super!! aber Datum/Uhrzeit Format
31.01.2008 11:54:15
Silva
Hallo Jan,
jep, habs getestet und es funktioniert wunderbar, genauso wie ichs wollte. Allerdings gibt es beim archivieren ein kleines Problemchen mit dem Datums/Uhrzeit Format. Er erkennt die Uhrzeit im Archiv nicht mehr?! Woran kann das liegen. Eigentlich hast du das Format im Code ja definiert .
Ich habe auch eine Lösung gefunden, welche aber weniger professionell ist. Das ist der eingesetzte Codeteil
...
Do Until found = 1
If Cells(a, 2).Value = ash.Cells(10, 22).Value Then
orow = a
onum = 2
found = 1
Else
a = a + 1
If a > 10000 Then Exit Do
End If
Loop
If
found = 1 Then
orow = a
onum = a - 5
Else
...
End if
Werde aber deinen Code weiterverwenden, weil er mir strukturierter und einheitlicher erscheint. Vielen lieben Dank für die Hilfe nochmal!
Gruss, Silva
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige