Thema Datum  Von Nutzer Rating
Antwort
06.07.2021 16:40:26 Bernd
NotSolved
06.07.2021 17:11:56 Gast15772
NotSolved
06.07.2021 17:12:47 Mase
NotSolved
Blau Die Antwort ist einfach ...
07.07.2021 10:05:05 Bernd
NotSolved
07.07.2021 12:02:39 Bernd
NotSolved
07.07.2021 12:16:48 Mase
NotSolved
07.07.2021 14:36:20 Bernd
NotSolved
07.07.2021 15:05:49 Mase
NotSolved
07.07.2021 15:47:19 Bernd
NotSolved
07.07.2021 16:18:58 Mase
NotSolved
08.07.2021 11:33:03 Bernd
NotSolved
06.07.2021 17:21:20 Gast7777
NotSolved

Ansicht des Beitrags:
Von:
Bernd
Datum:
07.07.2021 10:05:05
Views:
466
Rating: Antwort:
  Ja
Thema:
Die Antwort ist einfach ...

@Mase

Hallo Marco

Erst einmal vielen Dank für deine Antworten.

Leider bin ich auf der Suche nach Lösungen nur auf weitere Probleme gestoßen.

Ich versuche es einmal hier darzustellen:

Weg Array:

Dazu musste alle Element in ein Array packen, welche *.AI oder *.BI etc sind und dann eben ohne Platzhalter filtern.

Das geht aber nicht wenn die Elemente .AI, .BI, :AV, oder .BV nur ein Teil des String ist. Richtig verstanden?

 

Ob Du ducrch die Elemente loopst und mit IF..Like... arbeitest

Das wäre die "klassische Methode" als Suche wie ich sie für 31/ 61 verwende.

 ' Nach 31 suchen
 'Letzte Zeile feststellen
 With Worksheets(QSheet.Name)
    loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
With Worksheets(QSheet.Name)
Set Kopierange = .Rows(1)
For SuchZeile = 1 To loLetzte
If .Cells(SuchZeile, 10).Value = 31 Then
Set Kopierange = Union(Kopierange, .Rows(SuchZeile))
End If
Next SuchZeile
End With
  
 ' Nach 61 suchen

With Worksheets(QSheet.Name)

For SuchZeile = 1 To loLetzte
If .Cells(SuchZeile, 10).Value = 61 Then
Set Kopierange = Union(Kopierange, .Rows(SuchZeile))
End If
Next SuchZeile
Kopierange.Copy Destination:=Worksheets(Ort31).Range("A1")

End With

Hier wäre eine übergeordnete Schleife hilfreich, die die Suchwerte in verschiedenen Variablen speichert.

 '** Anzahl der Kriterien festlegen
    lngCriteriaCount = 4
    '** Variable neu dimensionieren da die Criterial mit 0 beginnen
ReDim arrCriteria(0 To lngCriteriaCount - 1)
    '** Filterkriterien festlegen

arrCriteria(0) = "*.AI*"
arrCriteria(1) = "*.BI*"
arrCriteria(2) = "*.AV*"
arrCriteria(3) = "*.BV*"

Und dies irgendwie in die Schleife mit einbauen, als Next arrCriteria.

Das bekomme ich aber irgendwie nicht hin.

 

...oder in ein temp.Worksheet

Das verstehe ich leider nicht.

Mit einem Temporären Worksheet habe ich noch nie gearbeitet und weiß nicht wie ich so etwas erstellen / bearbeiten / beenden soll.

mit Duplicate entfernen bleibt Dir überlassen.

Verstehe ich überhaupt nicht. Liegt aber wahrscheinlich daran, das ich das mit dem Tempsheet schon nicht verstehe.

Ich würde mich dann doch eher für die Klassische Variante entscheiden, muss dort halt mehrere Abfragen hintereinander machen, da ich das mit dem Übergeordneten Loop nicht hinbekomme.

 

Weg SQL:

SELECT * FROM `Tabelle1$`WHERE [Spalte]  NOT LIKE *:AI usw usf.

Soweit ich das Googeln konnte geht das nur in einer Datenbank. Bedeutet ich müsste die Tabelle erst in eine Query umwandeln und mich dann in Query einfuchsen.

Dann lieber Klassisch. :-)

Per SQL alle Filterkriterien finden, in das Array packen (aber komplette Elemente, also ohne Platzhalter(!)) und dann den Parameter Operator:=xlFilterValues damit füttern.

Damit findet man (wenn ich das richtig verstehe) keine Teilstring, oder? Fällt also weg.
Kann ich eh nicht

 

ADODB.Recordset (gerne auch die Recordset.Filter-Methode() anwenden anstelle der Where-clause)

Hat ebenfalls mit Datenbank Access zu tun und muss erst umgewandelt werden. Zu kompliziert für mich.

Bleibt also für mich die klassische Variante als Weg den ich nachvollziehen kann übrig.

Danke für deine Optionen.

 

Jetzt muss ich nur noch sehen wie ich das mit dem Loop hinbekomme.

Danke


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
06.07.2021 16:40:26 Bernd
NotSolved
06.07.2021 17:11:56 Gast15772
NotSolved
06.07.2021 17:12:47 Mase
NotSolved
Blau Die Antwort ist einfach ...
07.07.2021 10:05:05 Bernd
NotSolved
07.07.2021 12:02:39 Bernd
NotSolved
07.07.2021 12:16:48 Mase
NotSolved
07.07.2021 14:36:20 Bernd
NotSolved
07.07.2021 15:05:49 Mase
NotSolved
07.07.2021 15:47:19 Bernd
NotSolved
07.07.2021 16:18:58 Mase
NotSolved
08.07.2021 11:33:03 Bernd
NotSolved
06.07.2021 17:21:20 Gast7777
NotSolved