Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

VBA Variablen





Frage

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 1 von son_quatsch

Verwende nicht
Range("A1").

sondern einfach
Cells(1, 1).


Antwort 2 von Saarbauer

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

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

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

Du kannst auch Cells(23, "AE"). aufrufen - Problem gelöst?

Antwort 6 von jockel01

und wie mach ich das jetz mit der For schleife?

Antwort 7 von Flupo

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

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

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

Danke war passend. Sorry bin grad erst wieder online gegangen.
Gruß
jockel

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: