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

VBA-Code anpassen

VBA-Code anpassen
21.10.2005 10:04:35
Andrew
Hallo Leute,
ich habe hier einen VBA-Code. Zum größten Teil hat mir den der Sepp geschrieben.
Dabei wird in Spalte A geprüft, ob ein "+" in der Zelle steht, wenn ja nimmt er den Wert aus der jeweils danebenstehenden Zelle B.
Jetzt möchte ich gerne diesen Vorgang mehrfach wiederholen, nur sollen jetzt die Werte aus den Spalten C, D usw. verwendet werden.
Ich hatte jetzt vermutet, dass ich lediglich bei Cells(rng.Row, 2) anstelle der "2" nun eine "3" eintragen.
Die einzelnen Variablen rng, rngU und wkbNew habe ich mit einer 2 versehen, so dass sie nicht doppelt vergeben sind.
Aber wie bekomme das Makro jetzt dahin, dass es mir aus Spalte C ff die Werte in die neue Tabelle übernimmt?
Hier der VBA-Code:
Dim rng As Range, rngU As Range
Dim wkbNew As Workbook
For Each rng In Range("A4:A500")
If rng = "+" Then
If rngU Is Nothing Then
Set rngU = Cells(rng.Row, 2)
Else
Set rngU = Union(rngU, Cells(rng.Row, 2))
End If
End If
Next
If Not rngU Is Nothing Then
Set wkbNew = Workbooks.Add

rngU.Copy wkbNew.Sheets(1).Range("A6")
End If
Set rngU = Nothing
Set wkbNew = Nothing
Für eure Hilfe wäre ich sehr dankbar
Gruß
Andrew

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Code anpassen
21.10.2005 11:47:50
Harald
Hi Andrew,
vielleicht so ? Ungetestet !!
Dim rng As Range, rngU As Range
Dim wkbNew As Workbook
Dim i as Integer
for i = 0 to 6 step 2 '6:2 ergeben 3 Durchläufe. Spalte A, C und E
For Each rng In Range("A4:A500").offset(0, i)
If rng = "+" Then
If rngU Is Nothing Then
Set rngU = Cells(rng.Row, 2).offset(0, i)
Else
Set rngU = Union(rngU.offset(0, i), Cells(rng.Row, 2))'ggf offset umsetzen
End If
End If
Next
next i 'ggf an andere Stelle
If Not rngU Is Nothing Then
Set wkbNew = Workbooks.Add
rngU.Copy wkbNew.Sheets(1).Range("A6")
End If
Set rngU = Nothing
Set wkbNew = Nothing
Gruß
Harald
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige