Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
15.12.2021 17:27:05 |
NikoM |
|
|
|
15.12.2021 20:12:09 |
Gast36086 |
|
|
Daten in einem Array finden und Spalteninhalte wiedergeben |
16.12.2021 08:39:09 |
NikoM |
|
|
|
16.12.2021 11:03:23 |
Gast1949 |
|
|
Von:
NikoM |
Datum:
16.12.2021 08:39:09 |
Views:
332 |
Rating:
|
Antwort:
|
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:
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 :)
|
- 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
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- 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 |
|
|
|
15.12.2021 20:12:09 |
Gast36086 |
|
|
Daten in einem Array finden und Spalteninhalte wiedergeben |
16.12.2021 08:39:09 |
NikoM |
|
|
|
16.12.2021 11:03:23 |
Gast1949 |
|
|