Find + copier-coller + comparaison

Résolu
gregt73 Messages postés 55 Statut Membre -  
gregt73 Messages postés 55 Statut Membre -
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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    0
  2. gregt73 Messages postés 55 Statut Membre
     
    Bonjour,

    Merci pour la réponse.

    Les colonnes concernées sont entre C et CZ.

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

    Cordialement,
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      re,
      Ex: 1234 signifie "maison"
      1212 signifie "travail"


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

      il y a t'il d'autres correspondance ?
      0
  3. gregt73 Messages postés 55 Statut Membre
     
    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
    0