Rapprochement données avec VBA

romainarequipa Messages postés 26 Date d'inscription mercredi 17 décembre 2014 Statut Membre Dernière intervention 13 février 2015 - 12 févr. 2015 à 19:10
romainarequipa Messages postés 26 Date d'inscription mercredi 17 décembre 2014 Statut Membre Dernière intervention 13 février 2015 - 13 févr. 2015 à 14:29
Bonjour,

Après des recherches infructueuses, j'ai finalement fini par faire une macro automatique. Cependant insatisfait du résultat, je m'adresse a vous pour solutionner ce problème.

Dans le fichier ci-joint, je souhaite copier-coller en valeur (il y a des formules sur le doc original) les données de la colonne "Info 1" dans la colonne "rapprochement" et toujours dans cette même colonne copier-coller les données de la colonne "info 2" (à la suite des données de la colonne "info 1"

Les données dans les colonnes "info 1" et "info 2" peuvent être en nombre variable et ne se limite pas à celles du fichier exemple.

Enfin, après ce copier-coller, je souhaite supprimer les doublons ( il se peut qu'il y ai les mêmes données dans les colonne "info 1" et "info 2".

Si jamais ce n'est pas clair, faites le moi savoir pour que j'améliore la description.

Merci beaucoup par avance.

Romain

https://www.cjoint.com/c/EBmtspFgAtu

5 réponses

ozone_ Messages postés 1518 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 2 juin 2023 478
12 févr. 2015 à 20:47
Salut,

As tu essayer la formule :
=CONCATENER(C2;D2)

A mettre dans E2 puis étendre la formule.

Ensuite, tu veux supprimer les doublons sur la ligne ? Ou sur les colonnes ?
Si la colonne Info1 contient deux fois 5534 alors faut-il supprimer ces deux valeurs de la colonne Info 1 ET info 2 ?


0
romainarequipa Messages postés 26 Date d'inscription mercredi 17 décembre 2014 Statut Membre Dernière intervention 13 février 2015
12 févr. 2015 à 23:14
Bonsoir,

Cela ne répond pas à mes besoins.

Je veux recopier les informations de INFO 1 dans la colonne rapprochement et aussi les informations INFO 2.

Erreur de ma part. Il ne peut pas avoir de doublons dans les colonnes INFO1 et INFO2
Je veux supprimer les doublons dans la colonne rapprochement (en supprimer 1 des 2, cela n'a pas d'importance.

Je joins mon fichier exemple avec le résultat que je souhaite. En rouge, les doublons (si 2 fois 4545 dans colonne rapprochement alors suppression de l'une des cellules).

Merci par avance.

Romain

https://www.cjoint.com/c/EBmxtuXvOfN
0
via55 Messages postés 14512 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 janvier 2025 2 742
12 févr. 2015 à 23:34
Bonsoir

Essaie une macro de ce type :
Principe on copie d'abord les infos de la 1ere colonne puis on copie à la suite les infos de la 2eme colonne si elles n'existent pas dans la 1ere colonne (le NB.SI donne 0)

Sub rapprochement()
x = 1
Dim LigneA As Long
Dim LigneB As Long
'dernieres lignes remplies en colonnes C et D
LigneA = Columns(3).Find("*", , , , xlByColumns, xlPrevious).Row
LigneB = Columns(4).Find("*", , , , xlByColumns, xlPrevious).Row
'boucle sur colonne C et copie en F
For n = 2 To LigneA
x = x + 1
Range("F" & x) = Range("C" & n)
Next
'boucle sur colonne D 
For n = 2 To LigneB
'NB.SI la valeur en D en colonne C
existe = Application.WorksheetFunction.CountIf(Range("C:C"), Range("D" & n))
' si n'existe pas on la copie en colonne F
If existe = 0 Then
x = x + 1
Range("F" & x) = Range("D" & n)
End If
Next
End Sub


Cdlmnt
0
romainarequipa Messages postés 26 Date d'inscription mercredi 17 décembre 2014 Statut Membre Dernière intervention 13 février 2015
13 févr. 2015 à 09:14
Bonjour,

Merci, cela fonctionne.

En revanche, dans mes colonnes (info1 et info2) il y a des formules, j'ai donc des cellules vides quand il n'y a pas de correspondance avec un autre fichier. La Macro copie-colle toutes les cellules de ces colonnes même celles qui sont "vides". Je n'ai donc pas dans la colonne rapprochement les données des colonnes INFO1 et INFO2 à la suite (elles sont séparées par les cellules vides).

Y'a t-il une solution pour supprimer ces cellules vides dans la colonne rapprochement ? en ne supprimant que les cellules et non la ligne entière.

MErci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
via55 Messages postés 14512 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 janvier 2025 2 742
13 févr. 2015 à 14:07
Bonjour

Tu n'avais pas parlé de la possibilité de cellules vides; en ce cas modifies la macro ainsi :
Sub rapprochement()
x = 1
Dim LigneA As Long
Dim LigneB As Long
'dernieres lignes remplies en colonnes C et D
LigneA = Columns(3).Find("*", , , , xlByColumns, xlPrevious).Row
LigneB = Columns(4).Find("*", , , , xlByColumns, xlPrevious).Row
'boucle sur colonne C et copie en F si cellule non vide
For n = 2 To LigneA
If Range("C" & n) <> "" Then x = x + 1: Range("F" & x) = Range("C" & n)
Next
'boucle sur colonne D
For n = 2 To LigneB
'si cellule non vide
If Range("D" & n) <> "" Then
'NB.SI la valeur en D en colonne C
existe = Application.WorksheetFunction.CountIf(Range("C:C"), Range("D" & n))
' si n'existe pas déjà on la copie en colonne F
If existe = 0 Then x = x + 1: Range("F" & x) = Range("D" & n)
End If
Next
End Sub


Cdlmnt
0
romainarequipa Messages postés 26 Date d'inscription mercredi 17 décembre 2014 Statut Membre Dernière intervention 13 février 2015
13 févr. 2015 à 14:29
merci Cela fonctionne !!
0