Find + copier-coller + comparaison [Résolu/Fermé]

Signaler
Messages postés
52
Date d'inscription
lundi 25 mai 2009
Statut
Membre
Dernière intervention
21 janvier 2019
-
Messages postés
52
Date d'inscription
lundi 25 mai 2009
Statut
Membre
Dernière intervention
21 janvier 2019
-
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

Messages postés
16450
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
12 mai 2021
3 171
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
Messages postés
52
Date d'inscription
lundi 25 mai 2009
Statut
Membre
Dernière intervention
21 janvier 2019

Bonjour,

Merci pour la réponse.

Les colonnes concernées sont entre C et CZ.

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

Cordialement,
Messages postés
16450
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
12 mai 2021
3 171
re,
Ex: 1234 signifie "maison"
1212 signifie "travail"


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

il y a t'il d'autres correspondance ?
Messages postés
52
Date d'inscription
lundi 25 mai 2009
Statut
Membre
Dernière intervention
21 janvier 2019

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