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

Variblenname Variabel halten

Variblenname Variabel halten
30.05.2007 18:25:00
asterix80
Hallo an alle,
ich hab folgendes problem, ich möchte auf einer exceltabelle z.b. in die zelle 1A ein wert eintragen z.b. 5
bis jetzt definiere ich alles manuell undzwar so:

Private Sub Auslesen()
Dim suche1 As String
Dim suche2 As String
Dim suche3 As String
Dim suche4 As String
Dim suche5 As String
Dim suche_zeile1 As Integer
Dim suche_zeile2 As Integer
Dim suche_zeile3 As Integer
Dim suche_zeile4 As Integer
Dim suche_zeile5 As Integer
suche1 = "hallo1"
suche2 = "hallo2"
suche3 = "hallo3"
suche4 = "hallo4 "
suche5 = "hallo5"
For i = 1 To 400
If Cells(i, 2) = suche1 Then suche_zeile1 = Cells(i, 2).Row
If Cells(i, 2) = suche2 Then suche_zeile2 = Cells(i, 2).Row
If Cells(i, 2) = suche3 Then suche_zeile3 = Cells(i, 2).Row
If Cells(i, 2) = suche4 Then suche_zeile4 = Cells(i, 2).Row
If Cells(i, 2) = suche5 Then suche_zeile5 = Cells(i, 2).Row
Next i
...usw
End Sub


jetzt will ich aber die anzahl aus der celle einlesen und die variablendefinition über ne schleife machen. also statt immer 5 mal das selbe um ein wert zu erhöhen eine schleife von 1 bis 5... meinetwegen sogar von 1 bis 100
was kann ich alles variabel halten?
vielen dank im voraus.
gruß
asterix

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variblenname Variabel halten
30.05.2007 18:30:00
Hajo_Zi
Hallo asterix,
ich interpretiere Deinen Code mal so das Du die letzte Zeile rausbekommen möchtest wo der jeweilige Suchbegriff steht?
Benutze doch die Find Methode, ich würde vermuten die ist schneller.
Gruß Hajo

AW: Variblenname Variabel halten
30.05.2007 18:42:00
asterix80
hi hajo,
danke für die antwort, hast recht mit der find methode wird es eventuell schneller laufen, das werd ich auch berücksichtigen. aber was ist mit dem variablennamen? wie kann ich sowas machen (syntax ist falsch)

Private Sub Auslesen()
Dim i As Integer
Dim anz As Integer
anz = cells(1,1).value
for i=1 to anz
Dim suche & i As String
Dim suche_zeile & i As Integer
next i
for i = 1 to anz
suche & i = cells(1, i)
next i
For i = 1 To anz
suche_zeile & i = Cells.Find(suche & i)
Next i
...usw
End Sub


hoffe ich konnte euch verdeutlichen was ich meine. ich weiss leider nicht die syntax und ich weiss auch nicht ob ich dim variabel halten kann. da sind die excel profis gefragt.
vielen dank

Anzeige
Frage noch offen. Danke
30.05.2007 19:13:00
asterix80

AW: Variblenname Variabel halten
30.05.2007 18:40:02
mpb
Hallo ?
ich verstehe nicht, was Dein Code mit Deinem Problem ("ich möchte auf einer exceltabelle z.b. in die zelle 1A ein wert eintragen z.b. 5") zu tun hat. Er sieht zumindest reichlich "ungewöhnlich" aus.
Beschreibe mal verbal Deine Aufgabenstellung ohne Bezug auf Deinen Code.
Gruß
Martin

AW: Variblenname Variabel halten
30.05.2007 18:40:29
IngGi
Hallo asterix,
diese Schleife macht keinen Sinn:

For i = 1 To 400
If Cells(i, 2) = suche1 Then suche_zeile1 = Cells(i, 2).Row
If Cells(i, 2) = suche2 Then suche_zeile2 = Cells(i, 2).Row
If Cells(i, 2) = suche3 Then suche_zeile3 = Cells(i, 2).Row
If Cells(i, 2) = suche4 Then suche_zeile4 = Cells(i, 2).Row
If Cells(i, 2) = suche5 Then suche_zeile5 = Cells(i, 2).Row
Next i

Bei jedem Durchgang überschreibst du die Werte der Variablen suche_zeile1 usw. wieder. Am Ende stehen in den Variablen nur die Werte des letzten Schleifendurchganges.
Für das, was du (vermutlich) willst, gibt es sogenannte Datenfelder. Du kannst z.B. den Zellbereich A1:E100 folgendermaßen in ein zweidimensionales Datenfeld einlesen (zweidimensional deswegen, weil es eine Dimension für die Zeilen und eine zweite Dimension für die Spalten gibt):


Dim DFeld 'Das ist dein Datenfeld
DFeld = Range("A1:E100")

Die einzelnen Werte kannst du nun über einen Zeilen-/Spaltenindex ansprechen. Der Wert der Zelle A1 steht z.B. in DFeld(1, 1), der von A2 steht in DFeld(2, 1) und der von B1 steht in DFeld(1, 2) usw.
Gruß Ingolf

Anzeige
AW: Variblenname Variabel halten
31.05.2007 08:58:00
ingUR
Hallo, @asterix,
möglich, dass Du hier auf der Suche nach einem während der Laufzeit zu dimensionierenden Feld bist. Die Anweisung dafür ist ReDim suche(imax) und kann auf Felder angewendet werden, die zuvor in einer Dim-Anweisung deklariert wurden, jedoch ohne Größeangabe geblieben sind: Dim suche() as string

Private Sub Auslesen()
Dim i as long, imax as long
Dim suche() As String
Dim suche_zeile() As Integer
imax=Cells(1,1)
ReDim suche(imax), suche_zeile(imax)
for i=1 to imax
suche(i) = "hallo" & i
next i
For r = 1 To 400
for i=1 to imax
If Cells(r, 2) = suche(i) Then suche_zeile(i) = Cells(r, 2).Row
next i
next r
...usw
End Sub


Gruß,
Uwe

Anzeige
danke
31.05.2007 11:42:34
asterix80
hi uwe,
das ist genau das was ich gesucht habe. perfekt. vielen dank.
ein schönen tag noch
gruß
asterix

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige