Microsoft Excel

Herbers Excel/VBA-Archiv

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

Code verändern

Betrifft: Code verändern von: Andreas
Geschrieben am: 01.08.2014 17:00:38

Hallo Excelprofis!

Mit folgendem Code (Dank an dieses Forum) schreibe ich Verknüpfungen zu Daten aus einer anderen Datei Blatt "Anwesenheit" (die Datei wird über Combobox ausgewählt) in die Tabelle Übersicht.

In einer anderen Datei bräuchte ich das gleiche, nur das die Ursprungswerte aus einer Tabelle in der gleichen Datei kommen.

Also jetzt wird das Tabellenblatt in der Combobox ausgewählt und die Formeln sollen in das Blatt "Einzeln" eingetragen werden.

Kann mir bitte Jemand helfen, wie der Code aussehen muss.

Private Sub CommandButton1_Click()
   Dim strFile As String, strForm As String
   ActiveSheet.Unprotect Password:=""
   With ComboBox1
      If .ListIndex > -1 Then
         strFile = .List(.ListIndex)
      Else
            ' keine Datei ausgewählt - was tun?
      End If
   End With
      If strFile <> "" Then
                                             ' Anfang der Formel
      strForm = "'" & ThisWorkbook.Path & "\[" & strFile & "]Anwesenheit'!"
         
   With ThisWorkbook.Sheets("Übersicht") ' Zielblatt
       
        .Range("A8").Formula = "=" & "If(" & strForm & "$H$5" & "="""",""""," & strForm & "$H$5" _
 & ")"
        .Range("A3").Formula = "=" & "If(" & strForm & "A3" & "="""",""""," & strForm & "A3" & " _
)"
        .Range("J1").Formula = "=" & "If(" & strForm & "J1" & "="""",""""," & strForm & "J1" & " _
)"
        .Range("B5").Formula = "=" & "If(" & strForm & "B5" & "="""",""""," & strForm & "B5" & " _
)"
        .Range("X5").Formula = "=" & "If(" & strForm & "X5" & "="""",""""," & strForm & "X5" & " _
)"
        .Range("A9:AG33").Formula = "=" & "If(" & strForm & "A8" & "="""",""""," & strForm & " _
A8" & ")"
        TextBox3.Value = Format(Sheets("Übersicht").Range("J1"), "YYYY-MM")
   End With
      End If
   ActiveSheet.Protect Password:=""
End Sub
Danke fürs lesen und die Hilfe!

mfg, Andreas

  

Betrifft: Codevorschlag - ungetestet von: Erich G.
Geschrieben am: 02.08.2014 08:40:57

Hi Andreas,
schau dir das mal an:

Private Sub CommandButton1_Click()
   Dim strQBlatt As String

   With ComboBox1
      If .ListIndex > -1 Then strQBlatt = .List(.ListIndex)
   End With

   If strQBlatt <> "" Then
      With ThisWorkbook.Sheets("Einzeln")                   ' Zielblatt
         .Unprotect Password:="", UserInterfaceOnly:=True   ' bleibt in XL geschützt
         strQBlatt = "'" & strQBlatt & "'!"                 ' Blatt 'eingerahmt'
                                                                           ' warum mit $?
         .Range("A8").Formula = "=If(" & strQBlatt & "$H$5="""",""""," & strQBlatt & "$H$5)"
         .Range("A3").Formula = "=If(" & strQBlatt & "A3="""",""""," & strQBlatt & "A3)"
         .Range("J1").Formula = "=If(" & strQBlatt & "J1="""",""""," & strQBlatt & "J1)"
         .Range("B5").Formula = "=If(" & strQBlatt & "B5="""",""""," & strQBlatt & "B5)"
         .Range("X5").Formula = "=If(" & strQBlatt & "X5="""",""""," & strQBlatt & "X5)"
         .Range("A9:AG33").Formula = "=If(" & strQBlatt & "A8="""",""""," & strQBlatt & "A8)"
'         TextBox3.Value = Format(Sheets("Übersicht").Range("J1"), "YYYY-MM")       ' unklar
      End With
   End If
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich


  

Betrifft: AW: Codevorschlag - ungetestet von: Andreas
Geschrieben am: 02.08.2014 10:15:30

Hallo Erich,

Habs mal kurz duchgetestet. Scheint zu funktionieren.

Die $-Zeichen rühren daher, dass ich die Formel per Makrorecorder aufgezeichnet habe. Geht also auch ohne.

Ich komme erst heute Abend dazu ausgiebig zu testen.

Ich danke für deine Hilfe und wünsch ein schönes WE!

mfg, Andreas


  

Betrifft: Vielen Dank für die Hilfe! Funtioniert! von: Andreas
Geschrieben am: 04.08.2014 15:18:30

Hallo Erich,

Dein Code funktioniert prima. Vielen Dank!

mfg, Andreas


 

Beiträge aus den Excel-Beispielen zum Thema "Code verändern"