Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Dynamischer Sverweis in das vorherige Sheet | Herbers Excel-Forum


Betrifft: Dynamischer Sverweis in das vorherige Sheet von: Albert
Geschrieben am: 04.01.2012 08:10:54

Guten Morgen zusammen,

ich arbeite an einem Tabellenblattvorlage samt Formeln, welches künftig täglich verwendet werden soll.

Die Datei hab ich wie folgt aufgebaut: Sheet Startdaten, Sheet Vorlage.

Via Makro lasse ich nun ein neues Sheet erstellen, welches vom Benutzer mit dem aktuellen Datum versehen wird. Zum Beispiel heute, dem 04.01.2012.

Der Benutzer kopiert nun seine Daten ins Sheet "04.01.2012". Der Sverweis liefert erste Daten aus den "Startdaten", die ich aufbereitet hab.

Nun kommen wir zum Problem.

Der Benutzer erstellt morgen ein neues Sheet mit dem Namen "05.01.2012". Er kopiert wieder seine Daten in die Vorlage. Damit er nun die Matrix der Sverweisformeln nicht bearbeiten muss, suche ich eine Möglichkeit, dass der Sverweis immer auf das vorhergehende Sheet (hier z.B. "04.01.2012") zugreift.

Ich hoff, ich hab mein Problem ausreichend beschrieben?

Dank euch im Voraus!
Albert

  

Betrifft: AW: Dynamischer Sverweis in das vorherige Sheet von: Frank
Geschrieben am: 04.01.2012 09:31:07

Hallo Albert,



bei mir funktioniert das so:

Sub test()

Dim DatSVVar As Date
Dim DatTag As Date

DatTag = ActiveSheet.Name
DatSVVar = DatTag - 1

Range("B1").FormulaLocal = "=SVERWEIS(A1;'" & DatSVVar & "'!A1:B3;2;FALSCH)"

End Sub

Vorraussetzung: Die Daten der Tabellenblätter sind fortlaufend (Wochenenden ohne Tabellenblatt wäre ein Problem).



Andernfalls funktioniert dieser Code:
Sub test2()

Dim IntNumTB As Integer
Dim StrTBName As String

IntNumTB = ActiveSheet.Index
IntNumTB = IntNumTB - 1
StrTBName = Sheets(IntNumTB).Name

Range("B1").FormulaLocal = "=SVERWEIS(A1;'" & StrTBName & "'!A1:B3;2;FALSCH)"

MsgBox StrTBName

End Sub

Allerdings benutze ich Office 2010, ich hoffe bei Dir klappt das auch.



Gruß



Frank


  

Betrifft: AW: Dynamischer Sverweis in das vorherige Sheet von: Albert
Geschrieben am: 04.01.2012 11:58:24

Hallo Frank,

danke für deine schnelle Reaktion.

Ich hab den Code für meine Anforderung umgeschrieben.

Leider funktioniert das nicht so wies soll.

Range("M11").FormulaLocal = "=IF(iserror(VLOOKUP(A11,'" & StrTBName & "'!A:0,13,FALSE)),0,VLOOKUP(A11,'" & StrTBName & "'!A:0,13,FALSE))"

Fällt dir vielleicht der Fehler auf?

Danke und Gruß
Albert


  

Betrifft: A:0 wird wohl nicht gehen! o.T. von: Josef Ehrensberger
Geschrieben am: 04.01.2012 12:12:48

« Gruß Sepp »



  

Betrifft: AW: Dynamischer Sverweis in das vorherige Sheet von: Frank
Geschrieben am: 04.01.2012 12:37:10

Du solltest "0" durch "O" ersetzen und die "," durch ";"
Bei FormulaLocal muss die Formel so geschrieben werden, wie sie auch in der Zelle stehen soll.

Gruß

Frank


  

Betrifft: AW: Dynamischer Sverweis in das vorherige Sheet von: Albert
Geschrieben am: 04.01.2012 12:55:41

Hallo Josef, hallo Frank,

nochmals Danke für eure Hilfe.

Das Problem Null (0) und O wars soweit nicht. Jedoch hab ich die Zellformel eingefügt und die Semikolon eingefügt.

Das funktioniert ja absolut klasse!!!

Vielen herzlichen Dank...
Albert


Beiträge aus den Excel-Beispielen zum Thema "Dynamischer Sverweis in das vorherige Sheet"