Find + copier-coller + comparaison

Résolu
Bonjour à tous,

Etant (très) novice en VBA sous Excel, je me permet de vous demander votre aide, après avoir passé beaucoup de temps à chercher ce que je veux sur le net, a tenter de l'appliquer dans mon fichier excel...sans succès...

J'aimerais faire plusieurs chose:

1/
J'ai une feuille Excel avec environ 3000 lignes.
Dans chaque lignes se trouve la syntaxe "toto= 1234" ou "toto= 1212" ou "toto= 4321" (donc toujours toto= suivi de chiffre).
Cette syntaxe n'est jamais sur la même colonne (parfois D, ou G, ou K ou autre selon les lignes).
J'aimerais afficher dans la colonne A, tous les "toto" de chaque ligne (avec find, puis copier/coller je pense...)

2/
La valeur contenu après "toto" (1234 ou 1212) a une équivalence dans ma feuille2.
Ex: 1234 signifie "maison"
1212 signifie "travail"
Dans ma feuille1, j'aimerais afficher en colonne B, la correspondance de chaque "toto".

En ésperant avoir été assez clair...

Merci d'avance pour votre aide précieuse....

3 réponses

  1. Contributeur
    Bonjour

    Cette syntaxe n'est jamais sur la même colonne (parfois D, ou G, ou K ou autre selon les lignes).

    quelle colonnes concernées au total (début-fin) ?

    liste des correspondances ?

    au besoin
    Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
    et faire un clic droit-coller le raccourci dans votre message

    Dans l’attente
    1. Bonjour,

      Merci pour la réponse.

      Les colonnes concernées sont entre C et CZ.

      Que faut-il comprendre par "liste des correspondances"?

      Cordialement,
      1. Contributeur
        re,
        Ex: 1234 signifie "maison"
        1212 signifie "travail"


        c'est bien une liste de correspondance...
        bref !

        il y a t'il d'autres correspondance ?
    2. Oulà...
      Bref ! Drole de façon de répondre...

      Bon, j'ai réussi à faire ce que je voulais même si c'est surement pas super bien codé....

      Sub test()
      Dim ws As Worksheet
      Set ws = Worksheets("onglet1")
      Dim ws2 As Worksheet
      Set ws2 = Worksheets("onglet2")
      Dim lineCnt As Integer
      Dim i As Integer
      Dim j As Integer

      ws.Range("A1").Select
      Selection.EntireColumn.Insert

      ws.Range("A1").Select
      Selection.EntireColumn.Insert

      ws.Range("A1").Select
      Selection.EntireColumn.Insert

      lineCnt = WorksheetFunction.CountA(ws.Range("D:D"))

      For i = 1 To lineCnt

      ws.Rows(i).Find("toto", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
      ActiveCell.Copy
      ws.Range("A" & i).Select
      ActiveCell.PasteSpecial Paste:=xlPasteValues
      Next i

      For i = 1 To lineCnt
      ws.Range("B" & i) = Right((ws.Range("A" & i)), 3)

      Next i

      For i = 1 To lineCnt

      For j = 2 To 123

      If (ws.Range("B" & i) = ws2.Range("A" & j)) Then
      ws.Range("C" & i) = ws2.Range("B" & j)
      End If

      Next j
      Next i

      End Sub