[VBA] 2 Arrays miteinander verknüpfen
#11
Hmm.

Lasse ich UCase weg, klappt es aber Smile
Top
#12
Hallo,

da habe ich was übersehen

Code:
Case "INHALTSVERZEICHNIS", "DATA"
Gruß Stefan
Win 10 / Office 2016
Top
#13
Merci 
Brauche ich denn dann das UCase? Eigentlich egal wie rum, oder?

--
Hast du noch eine Idee zum Array-Problem?
Top
#14
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
Top
#15
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:
Top
#16
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
Top
#17
interessant! tatsache Smile

arrL(1) 
 -> arrL(1,1)

.. allerdings springt er mit 
Dateiname = arrL(WorksheetFunction.Match(Zelle.Value, arr, 0) - 1, 1)

immer noch nicht an...  Huh
Top
#18
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...  Huh

auch dein arr ist zweidiemensional. Teste halt ob deine If-Abfrage erfüllt ist.
Gruß Stefan
Win 10 / Office 2016
Top
#19
Stark!

Ich habs Smile

Dateiname = arrL(WorksheetFunction.Match(Zelle.Value, arr, 0), 1)

Tausend Dank!
Top
#20
(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
 Undecided

UCase macht halt alles Groß.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste