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

Ansicht des Beitrags:
Von:
NikoM
Datum:
16.12.2021 08:39:09
Views:
403
Rating: Antwort:
  Ja
Thema:
Daten in einem Array finden und Spalteninhalte wiedergeben

Hallo Gast36086 und vielen Dank für deine Mühe und Antwort.

Leider hat es bei mir mit deinem Quellcode nicht funktioniert. Gestern Abend habe ich jedoch mit einem Freund eine Lösung gefunden, die zwar Programmiertechnisch nicht die sauberste ist aber doch funktioniert:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Sub SucheNachInhalten()
Dim lngZeile As Long
Dim lngSpalteMax As Long
Dim lngZeileMax As Long
Dim lngSpalte As Long
Dim lngZeileMax2 As Long
Dim VarDat As Variant
Dim i As Integer
Dim sQuellSpalte As String
Dim sZielSpalte As String
 
  
Dim lngQuellZeile As Long
Dim lngQuellSpalte As Long
Dim lngZielZeile As Long
Dim lngZielSpalte As Long
 
  
With Tabelle1
  
    'Array für Zeilen in Tabelle1
    lngZeileMax = .Range("A" & .Rows.Count).End(xlUp).Row
    lngSpalteMax = .UsedRange.SpecialCells(xlCellTypeLastCell).Column
     
      
    'Array für Zeilen in Tabelle2
    lngZeileMax2 = Sheets("Tabelle2").Range("A" & .Rows.Count).End(xlUp).Row
   
    For lngZeile = 2 To lngZeileMax
        VarDat = Sheets("Tabelle2").Range("A2:A" & lngZeileMax2)
        For i = 1 To UBound(VarDat)
          
            If .Range("A" & lngZeile).Value = VarDat(i, 1) And .Range("B" & lngZeile).Value = "WV" Then
                 
                 
                For lngSpalte = 2 To (lngSpalteMax - 1)
                    lngQuellZeile = lngZeile
                    lngQuellSpalte = lngSpalte
                    lngZielZeile = i + 1
                    lngZielSpalte = lngQuellSpalte - 1
                    sQuellSpalte = Chr(lngQuellSpalte + 65)
                    sZielSpalte = Chr(lngZielSpalte + 65)
                    Sheets("Tabelle2").Range(sZielSpalte & lngZielZeile) = .Range(sQuellSpalte & lngQuellZeile)
                     
                Next lngSpalte
            End If
              
            If .Range("A" & lngZeile).Value = VarDat(i, 1) And .Range("B" & lngZeile).Value = "STWV" Then
                For lngSpalte = 2 To (lngSpalteMax - 1)
                    lngQuellZeile = lngZeile
                    lngQuellSpalte = lngSpalte
                    lngZielZeile = i + 1
                    lngZielSpalte = lngQuellSpalte - 1 + (lngSpalteMax - 13)
                    sQuellSpalte = Chr(lngQuellSpalte + 65)
                    sZielSpalte = Chr(lngZielSpalte + 65)
                    If sZielSpalte > "Y" Then
                    Exit For
                    End If
                    Sheets("Tabelle2").Range(sZielSpalte & lngZielZeile) = .Range(sQuellSpalte & lngQuellZeile)
                     
                Next lngSpalte
            End If
      
      
        Next i
    Next lngZeile
   
      
End With
  
End Sub

Damit klappts jetzt erstmal...wenn aber jemand hier den Qode optimieren kann bin ich für jeden Vorschlag offen :)


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
15.12.2021 20:12:09 Gast36086
NotSolved
Rot Daten in einem Array finden und Spalteninhalte wiedergeben
16.12.2021 08:39:09 NikoM
NotSolved
16.12.2021 11:03:23 Gast1949
NotSolved