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

frage zu schleifen

frage zu schleifen
19.03.2007 12:19:01
daniel
hallo,
ich möchte folgenden Code (mit Markorecorder erzeugt) als Schleife via vba realisieren.
hierbei ändern sich jeweils immer nur die hier fett dargestellten zellbezüge/Spalten (also erst B85, C85, D85 ... bis zur 1. Spalte in der die erste zelle leer ist) und die Offset Option ( ActiveCell.Offset(0, 1).Range("A1").Select) von Offset(0, 1) auf Offset(0, 2) usw...)
habe mir die do loop schleife angeschaut, komme aber leider nicht recht weiter -
bitte um hilfe.
danke
gruß daniel
Columns("A:A").Select
Selection.Find(What:="c 0", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Copy ([b85])
Columns("A:A").Select
Selection.Find(What:="c16", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Copy ([b86])
Columns("A:A").Select
Selection.Find(What:="c18", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Copy ([b87])
Range("B84").Select
ActiveCell.FormulaR1C1 = "=R[1]C/(R[2]C+R[3]C)"
Range("B85").Select

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: frage zu schleifen
19.03.2007 15:05:40
Dan
Hi, hier ein Beispiel, hoffentlich hilfts :-). Gruss Dan, cz.
Public

Sub codeAlsSchleife()
Dim find_copy(), upperIndex, lowerIndex, i, j, result
On Error GoTo Err_codeAlsSchleife
find_copy = Array("c 0", "b85", "c16", "b86", "c18", "b87")
upperIndex = UBound(find_copy)
lowerIndex = LBound(find_copy)
' preconditions : selection muss existieren, active-cell mus existieren, array muss gradzalig sein
If (Selection Is Nothing Or ActiveCell Is Nothing Or (upperIndex + 1) Mod 2  0) Then
' messagebox "Preconditions not valid..."
Exit Sub
End If
j = 0
For i = lowerIndex To upperIndex Step 2
Columns("A:A").Select
Set result = Selection.find(What:=find_copy(i), After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If (Not result Is Nothing) Then
result.Activate
Else
' messagebox "Nothing found..."
End If
j = j + 1
ActiveCell.Offset(0, j).Range("A1").Select
ActiveCell.Copy Range(find_copy(i + 1))
Next i
Exit Sub
Err_codeAlsSchleife:
MsgBox Err.Description, vbCritical, "Error [" & Err.Number & "]"
End Sub

Anzeige
AW: frage zu schleifen
19.03.2007 15:25:19
Niels
Hi Daniel,
ich habe deinen Code ein bischen gekürzt.
Columns("A:A").Select
Selection.Find(What:="c 0").Activate
ActiveCell.Offset(0, 1).Range("A1").Copy ([b85])
Columns("A:A").Select
Selection.Find(What:="c16").Activate
ActiveCell.Offset(0, 1).Range("A1").Copy ([c85])
Columns("A:A").Select
Selection.Find(What:="c18").Activate
ActiveCell.Offset(0, 1).Range("A1").Copy ([d85])
Range("B84").FormulaR1C1 = "=R[1]C/(R[1]C[1]+R[1]C[2])"
Range("B85").Select
Gruß Niels
AW: frage zu schleifen
20.03.2007 12:45:38
daniel
danke niels und dan,
@ dan
so funktioniert es mit deinem code schon, jedoch sollten die 3 parameter zur quotientenberechnung
jeweils aus der selben spalte herangezogen werden, also müssen aus jeder spalte die drei parameter
gesucht werden, da es aber sehr viele spalten sind, muss der zähler immer weiter gehen, bis die erste leere spalte folgt.
@ niels
ja, du hast recht, das kann man weg lassen, jedoch muss der code via schleife realsisiert werden, weil es sehr viele spalten sind, code sonst zu lang (mehr als 64kb).
gruß daniel
Anzeige
AW: frage zu schleifen
20.03.2007 13:32:27
Dan
Hi Daniel, ich moechte Dir schon helfen :-) aber ich verstehe nicht ganz, was Du erreichen willst. Kannst Du Deine Daten genauer beschreiben? Oder einen Sample posten? Und auch besser beschreiben, was der Code machen soll? Was sind '3 parameter zur quotientenberechnung'? Gruss Dan, cz
AW: frage zu schleifen
20.03.2007 13:49:00
daniel
hallo dan,
siehe beitrag von heute "problem mit schleife".
dort sind bsp-datei und nähere infos zu finden.
danke
gruß daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige