Thema Datum  Von Nutzer Rating
Antwort
24.02.2020 16:53:18 Wolfgang
NotSolved
24.02.2020 16:55:57 Mase
NotSolved
24.02.2020 17:06:50 Gast45159
NotSolved
24.02.2020 17:13:10 Mase
NotSolved
24.02.2020 18:29:13 Gast12096
NotSolved
24.02.2020 19:47:12 Mase
NotSolved
24.02.2020 21:20:32 Wolfgang
NotSolved
24.02.2020 22:26:23 Mase
NotSolved
25.02.2020 13:33:30 Wolfgang
NotSolved
25.02.2020 13:56:10 Mase
NotSolved
25.02.2020 22:12:23 Wolfgang
NotSolved
26.02.2020 08:20:53 Mase
NotSolved
Rot Abgleich von Links in Strings funktioniert nicht
26.02.2020 20:36:02 Wolfgang
NotSolved
26.02.2020 22:58:08 Mase
NotSolved
27.02.2020 01:04:23 Wolfgang
NotSolved
27.02.2020 07:22:36 Mase
NotSolved
27.02.2020 21:46:01 Wolfgang
NotSolved
27.02.2020 23:31:20 Mase
*****
Solved
29.02.2020 12:55:48 Wolfgang
NotSolved
29.02.2020 13:20:51 Mase
NotSolved
03.03.2020 16:49:47 Wolfgang
NotSolved
03.03.2020 18:12:16 Mase
NotSolved

Ansicht des Beitrags:
Von:
Wolfgang
Datum:
26.02.2020 20:36:02
Views:
563
Rating: Antwort:
  Ja
Thema:
Abgleich von Links in Strings funktioniert nicht

Hallo Mase,

 

ja du hast Recht. Ich sollte mal die komplette Verarbeitung hochladen. Vielleicht wird es dann besser ersichtlich. Das beiden Tabellen sind sehr umfangreich (eine knapp über 1.000 Zeilen, die andere ca 12.000) daher wäre eine Anonymisierung entsprechend aufwendig. Wir versuchen es mal so, falls wir gar nicht weiterkommen, überlege ich mir was, wie ich es doch hochladen kann. Ich habe außerdem mal ein anonymisiertes Schema von den Links, die verglichen werden sollen, angefügt (Länge und Aufbau stimmen exakt mit den Original-Links überein).

 

Sub Tabellen_zusammenfuehren()
   
  Dim rngCsM  As Excel.Range 'Spalten in Master
  Dim rngCM   As Excel.Range 'Spalte in Master
  Dim rngCS   As Excel.Range 'Spalte in Quelle
  Dim lngOffset As Long
  Dim feed, feedsheet As Worksheet
  Dim zielSheet As Worksheet
  Dim w, x, y, z As Long
  Dim linkTarget, linkFeed As String
  Dim main_link_target, image, beschreibung, g_d_preis, price, main_link_source, image_source, description, preis, link_2 As Integer
  Dim Zeile As Long
  Dim ZeileMax As Long
  
  lngOffset = 1
   
Set zielSheet = Worksheets("Main")
  With Worksheets("Main")
    Set rngCsM = .Range("A1", .Cells(1, .Columns.Count).End(xlToLeft))
  End With
   
  
  For Each wks In ActiveWorkbook.Worksheets
   If Not wks.Name = "Main" Then
    With wks
   
     For Each rngCM In rngCsM.Cells
       
      'Spalte (anhand Beschriftung) suchen
      Set rngCS = .Rows(1).Find(What:=rngCM, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False)
       
      If Not rngCS Is Nothing Then
        Debug.Print "Spalte '"; CStr(rngCM); "' gefunden"
        'Datenbereich der Spalte ref.
        Set rngCS = .Range(rngCS.Offset(1), .Cells(.Rows.Count, rngCS.Column).End(xlUp))
        anzahluebertragenezeilen = rngCS.Rows.Count
        'Werte übertragen
        rngCM.Offset(lngOffset).Resize(rngCS.Rows.Count).Value = rngCS.Value
        
      Else
        Debug.Print "Spalte '"; CStr(rngCM); "' nicht gefunden"
      End If
       
     Next
     lngOffset = lngOffset + anzahluebertragenezeilen
    End With
   End If
  Next
  
 ' Abgleich mit dem Feed zum Einfuegen von Links, Preis, Bilder, Beschreibung
 
 feed = Application.GetOpenFilename
 If feed <> False Then
    Set feedsheet = Workbooks.Open(feed).Sheets(1)
 Else
    Exit Sub
End If
For z = 1 To feedsheet.Cells(1, 256).End(xlToLeft).Column
     Select Case feedsheet.Cells(1, z)
     Case "link_2"
          link_2= z
     Case "main_link_source"
        main_link_source = z
     Case "image_source"
        image_source = z
     Case "description"
        description = z
     Case "Preis"
        preis = z
     End Select
Next z
With zielSheet
For y = 1 To rngCsM.Columns.Count
     Select Case .Cells(1, y)
     Case "N_Link_1"
          N_Link_1 = y
     Case "main_link_target"
        main_link_target = y
     Case "Product"
        Product = y
     Case "Image"
        image = y
     Case "Beschreibung"
        beschreibung = y
     Case "G_D_Preis"
        g_d_preis = y
     Case "Price"
        price = y
     End Select
Next y

ZeileMax = .UsedRange.Rows.Count

For Zeile = ZeileMax To 1 Step -1

  If Trim(.Cells(Zeile, 1).Value) = "" Then

   .Rows(Zeile).Delete

  End If
Next Zeile

For x = 2 To .UsedRange.SpecialCells(xlCellTypeLastCell).Row
   If .Cells(x, 1).Value <> "" Then
     linkTarget = LTrim(.Cells(x, N_Link_1).Value2)
     For w = 2 To feedsheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
       linkFeed = LTrim(feedsheet.Cells(w, link_2).Value2)
       Debug.Print linkTarget
       Debug.Print linkFeed & " =" & linkTarget = linkFeed
       If linkFeed = linkTarget Then
          .Cells(x, main_link_target) = feedsheet.Cells(w, main_link_source)
          .Cells(x, image) = feedsheet.Cells(w, image_source)
          .Cells(x, beschreibung) = feedsheet.Cells(w, description)
          .Cells(x, g_d_preis) = feedsheet.Cells(w, preis)
          .Cells(x, price) = feedsheet.Cells(w, preis)
       End If
      
      Next w
    End If
Next x
End With

  
End Sub

 

 

Ich hoffe es ist nicht zu unübersichtlich. Zur Erläuterung: Die Links die abgeglichen werden sind nicht die, die ich letztendlich in meiner Tabelle haben möchte. Abgeglichen werden N_Link_1 und link_2. Bei einem Match wird dann main_link_target mit main_link_source befüllt.

Ich arbeite zusammen mit Tobi an diesem "Projekt", um für den Verien diverse Material- und Bestelllisten zusammenzubringen. Deswegen ist der nachfolgende Teil  obsolet, wenn die Löschung der leeren Zeilen in Tobi's vorhergehendem Schritt funktioniert. Und demenstprechend funktioniert die Abfrage, ob die Zeile leer ist auch hier nicht zuverlässig. Der Programmdurchlauf hängt sich an den leeren Zeilen insbesondere auf, da aus irgendeinem Grund dort ein Abgleich statfindet und er dann wohl alle 12.000 Zeilen des Feeds auf ein Match durchsucht.

ZeileMax = .UsedRange.Rows.Count

For Zeile = ZeileMax To 1 Step -1

  If Trim(.Cells(Zeile, 1).Value) = "" Then

   .Rows(Zeile).Delete

  End If
Next Zeile

 

 

Und hier noch das Schema eines Links, der verglichen wird. Vielleicht findet sich ja hierbei ein Hinweis, warum es nicht funktioniert.

 

 http://xxx.main.de/index.php?redirect=https%3A%2F%2Fwww.ziel-seite.de%2Fxxxxx-xxxxxx-6-9-x0048692%3Fsize%3D1%26varid%3D375608%26bcc=12345&ab=012345678902345678911&bm=100&bmcl=0123456789012345678901234&cp_nnnn=Ovpe&ag_name=feed&bk=default

 

 

Vielen Dank nochmal für die stets schnellen und hilfreichen Antworten Mase :)

 

Grüße

Wolfgang


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
24.02.2020 16:53:18 Wolfgang
NotSolved
24.02.2020 16:55:57 Mase
NotSolved
24.02.2020 17:06:50 Gast45159
NotSolved
24.02.2020 17:13:10 Mase
NotSolved
24.02.2020 18:29:13 Gast12096
NotSolved
24.02.2020 19:47:12 Mase
NotSolved
24.02.2020 21:20:32 Wolfgang
NotSolved
24.02.2020 22:26:23 Mase
NotSolved
25.02.2020 13:33:30 Wolfgang
NotSolved
25.02.2020 13:56:10 Mase
NotSolved
25.02.2020 22:12:23 Wolfgang
NotSolved
26.02.2020 08:20:53 Mase
NotSolved
Rot Abgleich von Links in Strings funktioniert nicht
26.02.2020 20:36:02 Wolfgang
NotSolved
26.02.2020 22:58:08 Mase
NotSolved
27.02.2020 01:04:23 Wolfgang
NotSolved
27.02.2020 07:22:36 Mase
NotSolved
27.02.2020 21:46:01 Wolfgang
NotSolved
27.02.2020 23:31:20 Mase
*****
Solved
29.02.2020 12:55:48 Wolfgang
NotSolved
29.02.2020 13:20:51 Mase
NotSolved
03.03.2020 16:49:47 Wolfgang
NotSolved
03.03.2020 18:12:16 Mase
NotSolved