VBA Variablen
Hallo!
HAb folgendes Problem in Excel 2003.
For i = "34" To "100"
If Range("AI3").Value = Range("EZ4").Value And Range("AI2").Value = Range("FA4").Value Then
Range("A"&i).Interior.ColorIndex = 38
Range("A"&i).Font.ColorIndex = 38
Else
Range("A"&i).Interior.ColorIndex = 16
Range("A"&i).Font.ColorIndex = 16
Jetzt möchte ich nicht die Zeilen variabel gestalten sondern die Spalten wie mach ich das?
Antwort schreiben
Antwort 1 von son_quatsch vom 03.09.2020, 10:46 Options
Verwende nicht
Range("A1").
sondern einfach
Cells(1, 1).
Antwort 2 von Saarbauer vom 03.09.2020, 10:46 Options
Hallo,
geht wohl am einfachsten mit
Cells(Zeile, Spalte), ??? z.B. Cells( 2, 1)...
anstelle von Range(....).??? nach oben gemachten Beispiel Range ( "A2").....
aber Achtung bei Cells sind die Anordnung der Angaben zur Zelle umgekehrt
Gruß
Helmut
Antwort 3 von Flupo vom 03.09.2020, 10:47 Options
Benutze anstelle von Range(A3) Cells(3,1) (Zeile, Spalte) dann kannst du beide Werte der Position numerisch definieren und hast kein Problem in der IF-Anweisung.
Gruß Flupo
Antwort 4 von jockel01 vom 03.09.2020, 10:51 Options
Ja, das weis ich schon, aber ich arbeite in Zellen z.B. AE 23 und da ist es immer blöd zum umrechnen.
Antwort 5 von son_quatsch vom 03.09.2020, 11:05 Options
Du kannst auch Cells(23, "AE"). aufrufen - Problem gelöst?
Antwort 6 von jockel01 vom 03.09.2020, 11:09 Options
und wie mach ich das jetz mit der For schleife?
Antwort 7 von Flupo vom 03.09.2020, 11:17 Options
Rechne halt um.
Du kannst in der FOR-Schleife nur numerische Variablen verwenden - ob es blöd ist, oder nicht.
Als Hilfestellung während der Programmierung kannst du unter "Extras" - "Optionen" - Registerkarte "Allgemein" die Anzeige der Z1S1-Darstellung aktivieren.
Gruß Flupo
Antwort 8 von Saarbauer vom 03.09.2020, 11:19 Options
Hallo,
Die Spalte AE ist 31 ergibt sich aus A bis z = 26 Spalten und A bis E =5 Spalten
In deinem Fall würde ich mit
For x = 31 to ....
Cells(23, x)....
arbeiten
Gruß
Helmut
Antwort 9 von coros vom 03.09.2020, 11:48 Options
Hallo an alle!
Man kann, auch wenn das sicherlich beswser ist, das über Cells(x,y) zu lösen, auch aus der Spaltenindexzal wieder den Buchstaben ermitteln. Nachfolgend mal ein Beispiel, welches aus den Spaltenindexzahlen 35 bis 100 einen Spaltenbuchstaben macht.
Dim i As Long
Dim strSpalte As String
For i = 34 To 100
strSpalte = Application.Substitute(Cells(1, i).Address(0, 0), 1, "")
MsgBox strSpalte
Next
Wie bereits geschrieben, ist der Weg über Cells(x,y) der bessere. Aber ich wollte nur noch aufzeigen, dass man auch mit Buchstaben arbeiten kann.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 10 von jockel01 vom 11.09.2020, 11:02 Options
Danke war passend. Sorry bin grad erst wieder online gegangen.
Gruß
jockel