Anzeige
Archiv - Navigation
1508to1512
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
Inhaltsverzeichnis

Schleife und IF

Schleife und IF
11.08.2016 07:33:31
Daniel
Hallo!
Hab ein Anfängerproblem mit einer Schleife.
Was ich machen will:
in Tabelle1 Spalte H durchsuchen. Von Zeile 7 - 107
Wenn mind. ein Zeichen gefunden wird dann:
1. soll das Zeichen als Variable eingelesen werden.
2. soll eine Spalte auf dem Tabellenblatt newData(Codename) markiert werden, die die gleiche Nummer der Zeile in Tabelle1 hat z.B. Tabelle1.cells(17,8) soll markieren: newData.columns(17).
3. dann ein (bereits fertiges) Makro ausführen (Spalten einfügen und Text aus der markierten Spalte aufteilen)
4. in Spalte H weiter suchen
Fehler 1:
wsNewData.Columns(col).Select
funktioniert nicht. Warum? Mit der With Anweisung funktioniert es aber.
Fehler 2:
nach dem er den ersten Treffer gemacht hat, markiert er in jedem weiteren Durchlauf JEDE entsprechende Spalte, auch wenn gar kein Zeichen in Spalte H steht.
Wäre nett wenn jemand helfen könnte.
Viele Grüsse
Dim c As Integer
Dim wsNewData As Worksheet
Dim col As Integer
Dim Separator As String
ChangeColumns.Activate
Set wsNewData = newData
For c = 107 To 7 Step -1
If Cells(c, 8).Value "" Then
Separator = Cells(c, 8).Value
col = c - 6
wsNewData.Columns(col).Select
' With wsNewData
' .Activate
' .Columns(col).Select
' End With
Makro
End If
col = 0
Next c
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife und IF
11.08.2016 10:16:00
Rudi
Hallo,
Fehler1: Geht nicht, da wsNewData nicht aktiv ist. Im With-Rahmen aktivierst du das Baltt ja.
Fehler2: Dann ist ja wsNewData aktiv.
Set wsNewData = newData ist unsinnig. Du kannst direkt mit newData arbeiten.
Gruß
Rudi
AW: Schleife und IF
11.08.2016 13:11:22
Daniel
Hallo Rudi!
Herzlichen Dank.
Funktioniert nun.
Ehrlich gesagt habe ich es aber nicht verstanden.
Der eine Programmierer aktiviert immer alles erst und ein anderer aktiviert gar nichts und es funktioniert auch.
Das muss ich mal googeln warum das so ist.
Viele Grüsse
Daniel
AW: Das muss ich mal googeln
11.08.2016 15:23:41
Daniel
Hallo Rudi!
Das habe ich nun durchgelesen, verstehe meinen Fehler trotzdem nicht.
Ich finde es sollte funktionieren:
Sub test()
'newData.Activate
'newData.Range("A1").Select
newData.Range("A1").Select
End Sub
Das Makro funktioniert nur wenn ich in das Tabellenblatt newData geklickt habe.
In der Beschreibung, die du geschickt hast, steht ja dass man das "activate" weglassen kann.
Es wird ja in dem Code ganz klar gesagt was ausgewählt werden soll (finde ich).
So steht das auf der Webseite:
Sheets("Tabelle2").Select
Range("B2").Select
ActiveCell.FormulaR1C1 = "5"
wird zu:
Sheets("Tabelle2").Range("B2").Value = 5
genau so habe ich es auch gemacht, ausser dass ich Select anstatt von value genommen habe.
Grüsse
Daniel
Anzeige
AW: Das muss ich mal googeln
11.08.2016 15:54:17
Rudi
Hallo,
ausser dass ich Select anstatt von value genommen habe.
genau da ist der Unterschied.
Du kannst so zwar etwas in eine Zelle schreiben (oder sonst was damit anstellen) ohne sie zu selecten, sie aber nicht auswählen wenn sie nicht auf dem aktiven Blatt ist. Es geht ja gerade darum, ohne Select zu arbeiten.
Gruß
Rudi
AW: Das muss ich mal googeln
12.08.2016 12:55:43
Daniel
Hallo Rudi!
Langsam kommt Licht in die Dunkelheit :-)
Und wie machst du eine Schleife in einem bestimmten Tabellenblatt ohne das Tabellenblatt zu aktivieren?
Ich hab das ja fälschlicher Weise so gemacht:
Dim c As Integer
ChangeColumns.Activate
For c = Cells(Rows.Count, 8).End(xlUp).Row To 7 Step -1
Makro
Next c
Viele Grüsse
Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige