Thema Datum  Von Nutzer Rating
Antwort
15.12.2021 17:27:05 NikoM
NotSolved
Blau Daten in einem Array finden und Spalteninhalte wiedergeben
15.12.2021 20:12:09 Gast36086
NotSolved
16.12.2021 08:39:09 NikoM
NotSolved
16.12.2021 11:03:23 Gast1949
NotSolved

Ansicht des Beitrags:
Von:
Gast36086
Datum:
15.12.2021 20:12:09
Views:
210
Rating: Antwort:
  Ja
Thema:
Daten in einem Array finden und Spalteninhalte wiedergeben

Ich würde ehrlich gesagt trotzdem so viel wie möglich mit Excel-Boardmitteln erledigen wollen. Ja, mit Arrays ist man schneller, aber Formel ist auch nicht gleich Formel. ;)

 

Probier mal wie schnell das läuft:

Option Explicit

Public Sub SucheNachInhalten()
  
  Dim rngTable1 As Excel.Range
  Dim rngTable2 As Excel.Range
  
  'Bereich von Tabelle1 inkl. Kopfzeile
  Set rngTable1 = Tabelle1.Range(Tabelle1.Range("A1").End(xlToRight), Tabelle1.Range("A1").End(xlDown))
  'Bereich von Tabelle2 inkl. Kopfzeile
  Set rngTable2 = Tabelle2.Range(Tabelle2.Cells(1, Tabelle2.Columns.Count).End(xlToLeft), Tabelle2.Range("A1").End(xlDown))
  
  Dim rngCell As Excel.Range
  Dim strName As String
  Dim i As Long
  Dim j As Long
  
  For i = 2 To rngTable1.Rows.Count
    For j = 2 To rngTable1.Columns.Count
      strName = rngTable1.Cells(1, j).Value & "_" & rngTable1.Cells(i, 2).Value & "_" & rngTable1.Cells(i, 1).Value
      Call rngTable1.Worksheet.Names.Add(Name:=strName, RefersTo:=rngTable1.Cells(i, j))
    Next
  Next
  
  'Bereich ohne Kopfzeile und ohne der ersten Spalte (welche die ID Spalte sein sollte)
  With rngTable2.Resize(rngTable2.Rows.Count - 1, rngTable2.Columns.Count - 1).Offset(1, 1)
    .FormulaR1C1 = "=IF(" & _
                      "OR(ISERROR(INDIRECT(CONCATENATE(""Tabelle1!"",R1C,""_"",RC1))),ISBLANK(INDIRECT(CONCATENATE(""Tabelle1!"",R1C,""_"",RC1))))," & _
                      """""," & _
                      "INDIRECT(CONCATENATE(""Tabelle1!"",R1C,""_"",RC1))" & _
                    ")"
    'Formel-Ergebnisse in "harte" Zellen-Werte umwandeln
    .Value = .Value
  End With
  
  Do While rngTable1.Worksheet.Names.Count > 0
    Call rngTable1.Worksheet.Names(1).Delete
  Loop
  
End Sub

 

Grüße

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
15.12.2021 17:27:05 NikoM
NotSolved
Blau Daten in einem Array finden und Spalteninhalte wiedergeben
15.12.2021 20:12:09 Gast36086
NotSolved
16.12.2021 08:39:09 NikoM
NotSolved
16.12.2021 11:03:23 Gast1949
NotSolved