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

Do Until .....

Do Until .....
08.02.2004 21:07:02
Ernst Dunkel
Guten Abend Forum
Ich hätte zwei Fragen:
1. Der unten stehende Code funktioniert. Wie kann er vereinfacht werden?
2. Wie müsste der Code erweitert werden, dass sich die Schleife nur 5 mal wieder holt?
Für eine Antwort bin ich dankbar.
Mit freundlichen Grüssen
Ernst Dunkel


Privat

Sub worksheet_change(ByVal target as Excel. Range)
if target.column= 8 and target.row >10 and target.row <20 Then
End if
Do Until Range ("V10")= range("U10")
Range ("V10")=Range("U10")
Loop
Do Until Range ("V11")= range("U11")
Range ("V11")=Range("U11")
Loop
Do Until Range ("V12")= range("U12")
Range ("V12")=Range("U12")
Loop
usw. .........
End Sub

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Do Until .....
08.02.2004 21:14:52
Boris
Hi Ernst,
2 Dinge:
1.)
Warum schreibst du den Code manuell hier ins Forum? Nutze doch Copy und Paste - der Code liegt ja wohl schon vor.
2.)
Der Code macht aber überhaupt null Sinn.
Was soll die erste If-Abfrage?
Und vor allen Dingen der Einsatz der Do-Loop...?!?
Grüße Boris
AW: Do Until .....
08.02.2004 21:35:52
Ernst Dunkel
Hallo Boris
1. Ich arbeite auf einem anderen PC, darum die manuelle Eingabe.
2. Hast recht, so wie der Code jetzt steht.
Erläuterung:
Der Rechner, rechnet solange bis z.B. V10 gleich U10 ist, wobei U10 verändert wird. Das Ganze soll z.B. bei der Eingabe in J10 ausgelöst werden.
Anzeige
Ich versteh immer noch kein Wort...
08.02.2004 22:17:01
Boris
Hi Ernst,
...wie wird U10 verändert? Geschieht das im Millisekundentakt? Was soll dieser Code eigentlich bewirken?
Ich denke, du solltest mal den Gesamtkontext preisgeben - dann wird es vielleicht etwas klarer.
Grüße Boris
AW: Ich versteh immer noch kein Wort...
08.02.2004 22:36:35
Ernst Dunkel
Hallo Boris
Entschuldige bitte, dass ich mich nicht so genau ausgedrückt habe, ich dache eben es sei klar!
Zum Beispiele wird in Zelle U10 ein Schätzwert für die Oberflächentemperatur eingegeben. Zelle V10 errechnet die Oberflächentemperatur anhand hinterlegten Formeln welche auf die Zelle V10 zurück greift.
Zelle V10 muss solange verändert werden, bis der Wert der Zelle U10 entspricht. Dies soll erfolgen wenn ich in Zelle J10 den Rohrabstand eingebe.
Nun hoffe ich, dass Du mich verstehst.

Gruss Ernst
Anzeige
AW: Ich versteh immer noch kein Wort...
08.02.2004 22:49:08
Jens
Hi
Kann es sein das du versuchst etwas mit VBA zu lösen was auch mit Excel allein geht.
Geh mal in Extras/Add In Manager -> Solver
Schau dir mal die Hilf dazu an.
Da kannst du eingeben was als Ergebniss rauskommen soll und welche Zelle verändert werden darf um das zu ereichen.
Gruß Jens
AW: Ich versteh immer noch kein Wort...
08.02.2004 22:57:14
Ernst Dunkel
Hallo Jens
Könnte man auch, aber die endlos Schlaufe funktioniert wie unten angegeben. Meine Frage ist, kann der Code nicht vereinfacht werden? Wie müsste er abgeändert werden, dass die Schlaufe nur 5 mal durchläuft.

Do Until Range ("V10")= range("U10")
Range ("V10")=Range("U10")
Loop
Do Until Range ("V11")= range("U11")
Range ("V11")=Range("U11")
Loop
Do Until Range ("V12")= range("U12")
Range ("V12")=Range("U12")
Loop
Anzeige
AW: Ich versteh immer noch kein Wort...
09.02.2004 00:27:22
Ramses
Hallo Ernst

Sub Test()
Dim i As Byte
For i = 1 to 5
If Range ("V10")<>Range("U10") Then
Range ("V10")=Range("U10")
End if
If Range ("V11")<>Range("U11") Then
Range ("V11")=Range("U11")
End If
If Range ("V12")<>Range("U12")
Range ("V12")=Range("U12")
End if
next i
End Sub


Meintest du sowas ?
Gruss Rainer
An Ramses
09.02.2004 12:36:37
Ernst Dunkel
Guten Tag Rainer
Recht herzlichen Dank für Deine Arbeit, es funktioniert super mit dem Durchlauf.
Ich weis es zu schätzen, dass das Forum uns hilft, Respekt für alle, die uns helfen. Entschuldige, dass ich mich erst jetzt für Deine wertvolle Arbeit bedanke.
Der untenstehende Code kann nicht vereinfacht werden !?
Mit freundlichen Grüßen
Ernst Dunkel


Private Sub CommandButton1_Click()
Dim i As Byte
For i = 1 To 5
If Range("V10") <> Range("U10") Then
Range("V10") = Range("U10")
End If
If Range("V11") <> Range("U11") Then
Range("V11") = Range("U11")
End If
If Range("V12") <> Range("U12") Then
Range("V12") = Range("U12")
End If
If Range("V13") <> Range("U13") Then
Range("V13") = Range("U13")
End If
If Range("V14") <> Range("U14") Then
Range("V14") = Range("U14")
End If
If Range("V15") <> Range("U15") Then
Range("V15") = Range("U15")
End If
If Range("V16") <> Range("U16") Then
Range("V16") = Range("U16")
End If
Next i
End Sub

Anzeige
AW: An Ramses
09.02.2004 12:46:33
Ramses
Hallo
er kann nur vereinfacht werden wenn die prüfungen wegfallen.
Ich weiss nicht, ob diese nötig sind oder nicht, oder welchen Hintergrund die haben.
Hier noch eine etwas kürzere Variante

Private Sub CommandButton1_Click()
Dim i As Byte, n As Byte
For i = 1 To 5
For n = 10 To 16
If Range("V" & n) <> Range("U" & n) Then
Range("V" & n) = Range("U" & n)
End If
Next n
Next i
End Sub

Gruss Rainer
AW: An Ramses
09.02.2004 13:16:43
Ernst Dunkel
Hallo Rainer
einfach toll, genau so habe ich mir das vorgestellt!
Wünsche Dir eine schöne Woche, bis auf ein andermal.
Mit freundlichen Grüßen
Ernst Dunkel
Anzeige
NOCH OFFEN...
08.02.2004 22:52:28
Boris
Hi Ernst,
kommen wir doch nochmal zurück auf deinen Code:
Privat

Sub worksheet_change(ByVal target as Excel. Range)
if target.column= 8 and target.row >10 and target.row <20 Then
End if
'WARUM in aller Welt wird hier denn bitte geprüft, wenn es überhaupt
'keine Dann und / oder Sonst-Bedingung gibt?!?
Do Until Range ("V10")= range("U10")
Range ("V10")=Range("U10") 'Spätestens hier wird "Until" erreicht sein - und zwar beim 1. Durchlauf.
'Das gleiche gilt für alle anderen Do-Loop...
Loop
Do Until Range ("V11")= range("U11")
Range ("V11")=Range("U11")
Loop
Do Until Range ("V12")= range("U12")
Range ("V12")=Range("U12")
Loop
usw. .........
End Sub

Also - ohne eine Beispieldatei werd zumindest ich nicht schlau draus - sorry.
grüße Boris
Anzeige
AW: NOCH OFFEN...
08.02.2004 23:03:53
Ernst Dunkel
Hallo Boris
Kann ich Dir die Datei mailen? Wenn ja auf welche e-Mail Adresse?
AW: ???
08.02.2004 23:35:28
Ernst Dunkel
Hallo Franz
Deine Bemerkung finde ich nicht angebracht.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige