Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
784to788
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
784to788
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
VBA-Formel mit Variablen
28.07.2006 12:14:16
Anton
Hallo Leute,
ich möchte in eine VBA-Formel einen aufgezeichneten (festen) Wert durch eine Variable ersetzen:

Sub Sverweis()
Dim Eingabe As String
Dim Verweis As Long
Eingabe = InputBox("Bitte geben Sie das Datum" & Chr(10) & "der Auswertung ein:" & Chr(10) & "(JJJJMMTT)", "Dateneingabe:")
SVerweisEnde = Cells(Rows.Count, 2).End(xlUp).Row
For Verweis = SVerweisEnde To 2 Step -1
Cells(Verweis, 6).FormulaR1C1 = _
"=VLOOKUP(RC[-6],'[20060701 performance kabelBW -ausgewertet.xls]24.07.2006'!C1:C4,4,FALSE)"
Next Verweis
Range("G1").Select
End Sub

Das hier habe ich aufgezeichnet:
'[20060701 performance kabelBW -ausgewertet.xls]10.07.2006'! ....
...und sowas bilde ich mir ein:
'[" & Eingabe & " performance kabelBW -ausgewertet.xls]" & Eingabe2 &"'! ....
Wer kann mir bitte weiterhelfen.
Ich möchte auch aus einer Eingabe beide Angaben gewinnen.
Mein Dank geht schon jetzt in Eure Richtung.
Servus,
Anton

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Formel mit Variablen
28.07.2006 20:17:27
fcs
Hallo Anton,
ich habe dein Makro so ergänzt, dass das Eingabedatum auch in das 2.Datumsformat für den Tabellenblattnamen umgewandelt wird. Zusätzlich wird geprüft, ob die Eingabe abgebrochen wird bzw. die Eingabe ein sinnvolles Datum ergibt.
gruss
Franz

Sub Sverweis()
Dim Eingabe As String, strDatum As String, Datum As Date
Dim Verweis As Long
Eingabe:
Eingabe = InputBox("Bitte geben Sie das Datum" & Chr(10) & "der Auswertung ein:" & _
Chr(10) & "(JJJJMMTT)", "Dateneingabe:")
'Eingabeprüfung
If Eingabe = "" Then Exit Sub 'Abbrechen wurde angeklickt
'Umwandlung der Eingabe in das Format TT.MM.JJJJ
strDatum = Right(Eingabe, 2) & "." & Mid(Eingabe, 5, 2) & "." & Left(Eingabe, 4)
'Umwandlung der Eingabe in das excelinterne Datum
Datum = DateSerial(Val(Left(Eingabe, 4)), Val(Mid(Eingabe, 5, 2)), Val(Right(Eingabe, 2)))
'Überprüfung ob beide Datumsangaben identisch sind
If strDatum = Format(Datum, "DD.MM.YYYY") Then
SVerweisEnde = Cells(Rows.Count, 2).End(xlUp).Row
For Verweis = SVerweisEnde To 2 Step -1
Cells(Verweis, 6).FormulaR1C1 = _
"=VLOOKUP(RC[-6],'[" & Eingabe & " performance kabelBW -ausgewertet.xls]" & strDatum & "'!C1:C4,4,FALSE)"
Next Verweis
Else
If MsgBox("Eingabe '" & Eingabe & "' ist kein gültiges Datum! Eingabe wiederholen?", _
vbYesNo + vbExclamation) = vbYes Then
GoTo Eingabe
End If
End If
Range("G1").Select
End Sub

Anzeige
Herzlichen Dank
31.07.2006 08:18:23
Anton
Hallo Franz,
vielen Dank für Deinen genialen Code.
Die Datum-Prüfung brauche ich tatsächlich.... wie oft vertippt man sich...
Es sagt dankend servus,
Anton

324 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige