Tabellenblatt aufrufen aus VBA

Dieses Thema Tabellenblatt aufrufen aus VBA im Forum "Microsoft Office Suite" wurde erstellt von Hogl, 23. Sep. 2010.

Thema: Tabellenblatt aufrufen aus VBA Hallo, ich habe derzeit folgendes Makro : Dim vorhanden As Boolean, n As Worksheet For Each n In...

  1. Hallo,

    ich habe derzeit folgendes Makro :

    [sup]Dim vorhanden As Boolean, n As Worksheet
    For Each n In ThisWorkbook.Worksheets
    If n.Name = Range(I4).Value Then
    vorhanden = True
    Exit For
    End If
    Next n

    If vorhanden = False Then
    ActiveSheet.Unprotect
    Sheets(Nummernvergabe).Select
    Range(I4).Select
    nummer = Range(I4).Value
    nummername = Range(J4).Value
    prozent = Range(K5).Value
    prozent2 = Range(L5).Value
    blattname = Range(I4).Value
    Sheets(Vorlage).Visible = True
    Sheets(Vorlage).Copy Before:=Sheets(Vorlage)
    ActiveSheet.Name = blattname
    Else
    MsgBox (Abrechnungsblatt bereits vorhanden)
    Sheets(blattname).Activate

    Exit Sub

    End If[/sup]

    Wie stell ich es jetzt an, das nach der MsgBox das blatt welches ja schon angelegt ist auch aufgerufen wird?

    Danke Schonma


    Hogl
     
  2. Hallo Hogl,

    bei mir ist es keine Messagebox sondern eine Inputbox wenn ich die Datei öffne. Wenn ich den Mappennamen (bei mir Zahlen 1-31) eingebe wechselt er in die Mappe, wenn nix eingegeben wird, wird Mappe 31 geöffnet.
    Vielleicht kannst du sie ja anpassen.

    Private Sub Workbook_Open()

    Dim s_str As String, l_str As Long

    ->Default
    l_str = 1

    Do
    NOCHMAL:
    s_str = InputBox( _
    Text
    s_str)
    If s_str = Then l_str = 31: Exit Do
    On Error Resume Next
    l_str = s_str
    If Err.Number <> 0 Then
    Err.Clear: On Error GoTo 0
    MsgBox (Eingabe unzulässig. Bitte korrigieren.)
    GoTo NOCHMAL
    End If
    If 0 < l_str And l_str < ActiveWorkbook.Worksheets.Count Then Exit Do
    MsgBox (Eingabe ausserhalb Bereich 1 bis & ActiveWorkbook.Worksheets.Count)
    Loop
    BLATT_AKTIVIEREN:
    ActiveWorkbook.Worksheets(l_str).Activate
    End Sub
     
  3. Hallo joergi,

    Inputbos ist leider bei mir aufgrund der gesamten tabelle nicht möglich. Wenn ich das blatt neu anlege, springt er ja auch drauf, allerdings nicht wenn es schon vorhanden ist. wenn ich jetzt z.b. blatt 6 anlege ( Bei mir sind es auch nummern ) und ändere den code von
    Sheets(blattname).Activate
    in
    Sheets(6).Activate
    funktioniert alles, sprich wenn ich blatt 6 nochmal anlegen will kommt die MsgBox und er springt auf blatt 6. jedoch macht er das nicht mit Sheets(blattname).Activate.
    ich komm nich weider -.-

    Hogl
     
  4. Hallo,
    viel trennt Dich ja nicht von Deinem gewollten Ergebnis.
    Tausche einfach die Zeile
    Code:
     Sheets(n.Name).Activate 
    gegen
    Code:
     Sheets(blattname).Activate 
    Deine Variable->blattname' ist leer. Daher der Fehler
     
  5. Hallo Hogl,

    probier's doch mal so.

    Gruß Matjes :)
    Code:
    Option Explicit
    
    Sub xxx()
    
     Dim ws As Worksheet
     Dim blattname As String
     Dim nummer As Long   ->???? Typ definieren
     Dim nummername As String->???? Typ definieren
     Dim prozent As Double ->???? Typ definieren
     Dim prozent2 As Double ->???? Typ definieren
     
     blattname = Range(I4).Value
     
    ->schauen, ob Blatt schon vorhanden ist
     For Each ws In ThisWorkbook.Worksheets
      If ws.Name = blattname Then
       MsgBox (Abrechnungsblatt bereits vorhanden)
       ws.Activate
       GoTo AUFRAEUMEN
      End If
     Next
    
     ActiveSheet.Unprotect
     
     Sheets(Nummernvergabe).Activate
     Range(I4).Select
     nummer = Range(I4).Value
     nummername = Range(J4).Value
     prozent = Range(K5).Value
     prozent2 = Range(L5).Value
     
     Sheets(Vorlage).Visible = True
     Sheets(Vorlage).Copy Before:=Sheets(Vorlage)
     ActiveSheet.Name = blattname
    
    AUFRAEUMEN:
     Set ws = Nothing
    End Sub
    
     
  6. Vielen dank, da hätte ich dödel ja auch selber drauf kommen können -.-
     
Die Seite wird geladen...

Tabellenblatt aufrufen aus VBA - Ähnliche Themen

Forum Datum
Berechnung aus Tabellenblatt aufrufen Office XP Microsoft Office Suite 11. Dez. 2004
Excel - Bestimmte Daten (Zeilen) in ein anderes Tabellenblatt einfügen Windows XP Forum 7. Juli 2012
Neues Tabellenblatt einfügen durch Schaltfläche via Makro Windows XP Forum 9. Apr. 2012
Excel - Werte unterschiedlicher Tabellenblätter für Übersicht automatisch ziehen Microsoft Office Suite 22. Aug. 2010
Excel '07 - Verweis auf Zeile im gleichen Tabellenblatt! Geht das? Microsoft Office Suite 24. Feb. 2010