Find + copier-coller + comparaison
Résolu
gregt73
Messages postés
55
Statut
Membre
-
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....
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....
A voir également:
- Find + copier-coller + comparaison
- Historique copier coller - Guide
- Copier-coller - Accueil - Informatique
- Copier coller pdf - Guide
- Style d'écriture a copier coller - Guide
- Comparaison million milliard - Accueil - Technologies
3 réponses
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
Dans l’attente
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
Bonjour,
Merci pour la réponse.
Les colonnes concernées sont entre C et CZ.
Que faut-il comprendre par "liste des correspondances"?
Cordialement,
Merci pour la réponse.
Les colonnes concernées sont entre C et CZ.
Que faut-il comprendre par "liste des correspondances"?
Cordialement,
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
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