Registriert seit: 24.11.2017
Version(en): 2016
Hmm.
Lasse ich UCase weg, klappt es aber
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
da habe ich was übersehen
Code:
Case "INHALTSVERZEICHNIS", "DATA"
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 24.11.2017
Version(en): 2016
Merci
Brauche ich denn dann das UCase? Eigentlich egal wie rum, oder?
--
Hast du noch eine Idee zum Array-Problem?
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
(08.12.2019, 11:39)jules schrieb: Merci
Brauche ich denn dann das UCase? Eigentlich egal wie rum, oder?
Hast du noch eine Idee zum Array-Problem?
Das kommt darauf an, wie Du den Tabellennamen im Case-Zweig und in Excel selber geschrieben hast.
Zum Array: Ein bissl wenig was Du an Code gepostet hast.
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 24.11.2017
Version(en): 2016
Ok. Danke Dir!
Zum Array:
Code:
Dim arr As Variant
Dim arrL As Variant
Dim wks As Worksheet
Pfad = Range("DataPfad")
arr = Worksheets("Data").Range("G8:G13")
arrL = Worksheets("Data").Range("H8:H13")
'arrL = Array("Verbrauchsstatistik L1 2020.xlsb","Verbrauchsstatistik L2 2020.xlsb", "Verbrauchsstatistik L3 2020.xlsb")
For Each wks In Worksheets
If wks.Visible = xlSheetVisible Then
Select Case wks.Name
Case "Data", "Inhaltsverzeichnis"
Case Else
With wks
Blatt = .Range("B1")
Set Bereich = .Range("C2:N2")
For Each Zelle In Bereich
Zellen = Range(Cells(4, Zelle.Column), Cells(21, Zelle.Column)).Address
If IsNumeric(WorksheetFunction.Match(Zelle.Value, arr, 0)) Then
Dateiname = arrL(WorksheetFunction.Match(Zelle.Value, arr, 0) - 1)
MsgBox Dateiname
Wie gesagt. Liste ich die Werte im Makro auf (aktuell deaktiviert) funktioniert es. Soll er sie sich aus der Zelle holen, geht es nur bei arrL nicht... :16:
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
arrL ist zweidimensional
Code:
Dateiname = arrL(WorksheetFunction.Match(Zelle.Value, arr, 0) - 1, 1)
schau mal, wenn Du das im Einzelschrittmodus ablaufen läßt, ins Lokal- bzw. Überwachungsfenster, dann siehst Du es.
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 24.11.2017
Version(en): 2016
interessant! tatsache
arrL(1)
-> arrL(1,1)
.. allerdings springt er mit
Dateiname = arrL(WorksheetFunction.Match(Zelle.Value, arr, 0) - 1, 1)
immer noch nicht an...
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
(08.12.2019, 12:11)jules schrieb: .. allerdings springt er mit
Dateiname = arrL(WorksheetFunction.Match(Zelle.Value, arr, 0) - 1, 1)
immer noch nicht an...
auch dein arr ist zweidiemensional. Teste halt ob deine If-Abfrage erfüllt ist.
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 24.11.2017
Version(en): 2016
Stark!
Ich habs
Dateiname = arrL(WorksheetFunction.Match(Zelle.Value, arr, 0), 1)
Tausend Dank!
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
(08.12.2019, 11:39)jules schrieb: Brauche ich denn dann das UCase? Eigentlich egal wie rum, oder?
na Du hattest doch gejammert:
Zitat:.. Anscheinend muss ich bei "Case" E X A K T den Tabellennamen angeben. Also auch Groß-/Klein Schreibung etc.
Funktioniert nun ... *nerv
UCase macht halt alles Groß.