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
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
A voir également:
- Rapprochement données avec VBA
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Reinstaller windows sans perte de données - Guide
- Tnt base de données vide ✓ - Forum TNT / Satellite / Réception
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
12 févr. 2015 à 20:47
Salut,
As tu essayer la formule :
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 ?
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 ?
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
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
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
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
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)
Cdlmnt
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
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
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
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
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
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 :
Cdlmnt
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
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
13 févr. 2015 à 14:29
merci Cela fonctionne !!