Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Code verändern

Forumthread: Code verändern

Code verändern
01.08.2014 17:00:38
Andreas

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

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Codevorschlag - ungetestet
02.08.2014 08:40:57
Erich G.
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

Anzeige
AW: Codevorschlag - ungetestet
02.08.2014 10:15:30
Andreas
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

Anzeige
Vielen Dank für die Hilfe! Funtioniert!
04.08.2014 15:18:30
Andreas
Hallo Erich,
Dein Code funktioniert prima. Vielen Dank!
mfg, Andreas

;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige