VBA excel différencier des doublons
Résolu/Fermé
llecarpentier
Messages postés
29
Date d'inscription
mercredi 1 juin 2011
Statut
Membre
Dernière intervention
5 juillet 2011
-
9 juin 2011 à 15:49
llecarpentier Messages postés 29 Date d'inscription mercredi 1 juin 2011 Statut Membre Dernière intervention 5 juillet 2011 - 10 juin 2011 à 11:07
llecarpentier Messages postés 29 Date d'inscription mercredi 1 juin 2011 Statut Membre Dernière intervention 5 juillet 2011 - 10 juin 2011 à 11:07
A voir également:
- VBA excel différencier des doublons
- Liste déroulante excel - Guide
- Supprimer les doublons excel - Guide
- Word et excel gratuit - Guide
- Si et excel - Guide
- Doublons photos - Guide
8 réponses
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
155
9 juin 2011 à 16:08
9 juin 2011 à 16:08
Bonjour,
tu as fait une erreur de frappe!!!
remplace :
If Sheets("synthese").Cells(ligne, 2).Value = Sheets("synthese").Cells(ligne + 1, 2).Value And Sheets("synthese").Cells(ligne, 3).Value = Sheets("synthesis").Cells(ligne + 1, 3).Value Then
par
If Sheets("synthese").Cells(ligne, 2).Value = Sheets("synthese").Cells(ligne + 1, 2).Value And Sheets("synthese").Cells(ligne, 3).Value = Sheets("synthese").Cells(ligne + 1, 3).Value Then
après le end tu lui demandes de rechercher dans la feuille synthesis mais je suppose que c'est synthèse non?
tu as fait une erreur de frappe!!!
remplace :
If Sheets("synthese").Cells(ligne, 2).Value = Sheets("synthese").Cells(ligne + 1, 2).Value And Sheets("synthese").Cells(ligne, 3).Value = Sheets("synthesis").Cells(ligne + 1, 3).Value Then
par
If Sheets("synthese").Cells(ligne, 2).Value = Sheets("synthese").Cells(ligne + 1, 2).Value And Sheets("synthese").Cells(ligne, 3).Value = Sheets("synthese").Cells(ligne + 1, 3).Value Then
après le end tu lui demandes de rechercher dans la feuille synthesis mais je suppose que c'est synthèse non?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
Modifié par pijaku le 9/06/2011 à 16:14
Modifié par pijaku le 9/06/2011 à 16:14
Bonjour,
1- Do While "sur place" :
Dans ta "boucle" Do While, tu ne changes pas la valeur de ligne. Donc tu boucle sur la ligne 2....
2- Je souhaite que la valeur de la cellule situé dans mon doublon colonne D soit égale à la valeur de la première ligne dans ma colonne E
C'est toi qui le dis...
Ton code dis : si égal à la cellule E2 :
à remplacer donc, il me semble par : Sheets("synthese").Cells(2, 5).Value
N'est il pas?
Cordialement,
Franck P
1- Do While "sur place" :
ligne = 2 Do Bla bla ligne = ligne + 1 While
Dans ta "boucle" Do While, tu ne changes pas la valeur de ligne. Donc tu boucle sur la ligne 2....
2- Je souhaite que la valeur de la cellule situé dans mon doublon colonne D soit égale à la valeur de la première ligne dans ma colonne E
C'est toi qui le dis...
Ton code dis : si égal à la cellule E2 :
Sheets("synthese").Cells(ligne, 5).Value
à remplacer donc, il me semble par : Sheets("synthese").Cells(2, 5).Value
N'est il pas?
Cordialement,
Franck P
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
155
9 juin 2011 à 16:16
9 juin 2011 à 16:16
ou rajoute :
ligne = ligne+1 avant le loop
ligne = ligne+1 avant le loop
llecarpentier
Messages postés
29
Date d'inscription
mercredi 1 juin 2011
Statut
Membre
Dernière intervention
5 juillet 2011
9 juin 2011 à 16:29
9 juin 2011 à 16:29
Merci pour vos réponses!!
A vrai dire Pijaku, je me suis mal exprimé. je voulais dire la première ligne du doublon.
A vrai dire Pijaku, je me suis mal exprimé. je voulais dire la première ligne du doublon.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
9 juin 2011 à 16:30
9 juin 2011 à 16:30
Pas de souci.
Tu as corrigé ton problème?
C'est résolu?
Tu as corrigé ton problème?
C'est résolu?
llecarpentier
Messages postés
29
Date d'inscription
mercredi 1 juin 2011
Statut
Membre
Dernière intervention
5 juillet 2011
10 juin 2011 à 10:14
10 juin 2011 à 10:14
Désolé de ne pas avoir répondu plus tôt mais j'avais des choses importantes à regler.
Tout d'abord je vous remercie pour votre aide. Les erreurs sont corrigées.
Malheureusement depuis hier après midi le problème a changé.
Tout d'abord je ne dois remplir les cellules de ma colonne E que si les cellules situées sur la même ligne dans ma colonne A sont négative. J'en ai donc déduit la macro suivante qui fonctionne:
Sheets("synthese").Select
Dim ligne As Integer
ligne = 2
Do
If Sheets("synthese").Cells(ligne, 1) < 0 Then
Sheets("synthesis").Cells(ligne, 5) = Sheets("synthesis").Cells(ligne, 1) + Sheets("synthesis").Cells(ligne, 4)
End If
ligne = ligne + 1
Loop Until Cells(ligne, 2) = ""
End Sub
Le problème est que maintenant j'ai des cellules vide dans ma colonne E et la macro que j'ai faite pour additionner les valeurs incluses dans mes doublons ne fonctionne plus.
J'ai par conséquent décider d'en faire une autre mais l'effet n'est pas celui escompté puisque la macro ne s'arrête pas (normal vu que je ne sais pas quelle condition poser pour l'arrêter) et qu'elle n'agie que sur mon premier doublon situé aux lignes 3 et 4.
Autant vous dire que je désespère.
La macro est la suivante:
Sub SoustractionBom()
Sheets("synthese").Select
Dim ligne As Integer
ligne = 2
Do
If Cells(ligne, 2) = Cells(ligne + 1, 2) And Cells(ligne, 3) = Cells(ligne + 1, 3) Then
Cells(ligne + 1, 4) = Cells(ligne, 4) + Cells(ligne, 1)
Else
ligne = ligne + 1
End If
Loop
End Sub
Auriez vous une solution pour cette dernière macro?
Est-il possible de combiner les deux macro?
Merci d'avance pour vos réponses.
Tout d'abord je vous remercie pour votre aide. Les erreurs sont corrigées.
Malheureusement depuis hier après midi le problème a changé.
Tout d'abord je ne dois remplir les cellules de ma colonne E que si les cellules situées sur la même ligne dans ma colonne A sont négative. J'en ai donc déduit la macro suivante qui fonctionne:
Sheets("synthese").Select
Dim ligne As Integer
ligne = 2
Do
If Sheets("synthese").Cells(ligne, 1) < 0 Then
Sheets("synthesis").Cells(ligne, 5) = Sheets("synthesis").Cells(ligne, 1) + Sheets("synthesis").Cells(ligne, 4)
End If
ligne = ligne + 1
Loop Until Cells(ligne, 2) = ""
End Sub
Le problème est que maintenant j'ai des cellules vide dans ma colonne E et la macro que j'ai faite pour additionner les valeurs incluses dans mes doublons ne fonctionne plus.
J'ai par conséquent décider d'en faire une autre mais l'effet n'est pas celui escompté puisque la macro ne s'arrête pas (normal vu que je ne sais pas quelle condition poser pour l'arrêter) et qu'elle n'agie que sur mon premier doublon situé aux lignes 3 et 4.
Autant vous dire que je désespère.
La macro est la suivante:
Sub SoustractionBom()
Sheets("synthese").Select
Dim ligne As Integer
ligne = 2
Do
If Cells(ligne, 2) = Cells(ligne + 1, 2) And Cells(ligne, 3) = Cells(ligne + 1, 3) Then
Cells(ligne + 1, 4) = Cells(ligne, 4) + Cells(ligne, 1)
Else
ligne = ligne + 1
End If
Loop
End Sub
Auriez vous une solution pour cette dernière macro?
Est-il possible de combiner les deux macro?
Merci d'avance pour vos réponses.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
155
10 juin 2011 à 10:21
10 juin 2011 à 10:21
Bonjour,
essaie ca et dis moi ce qu'il en est :
Sub SoustractionBom()
Sheets("synthese").Select
Dim ligne As Integer
ligne = 2
Do while cells(ligne,1) <> ""
If Cells(ligne, 2) = Cells(ligne + 1, 2) And Cells(ligne, 3) = Cells(ligne + 1, 3) Then
Cells(ligne + 1, 4) = Cells(ligne, 4) + Cells(ligne, 1)
Else
ligne = ligne + 1
End If
Loop
End Sub
essaie ca et dis moi ce qu'il en est :
Sub SoustractionBom()
Sheets("synthese").Select
Dim ligne As Integer
ligne = 2
Do while cells(ligne,1) <> ""
If Cells(ligne, 2) = Cells(ligne + 1, 2) And Cells(ligne, 3) = Cells(ligne + 1, 3) Then
Cells(ligne + 1, 4) = Cells(ligne, 4) + Cells(ligne, 1)
Else
ligne = ligne + 1
End If
Loop
End Sub
llecarpentier
Messages postés
29
Date d'inscription
mercredi 1 juin 2011
Statut
Membre
Dernière intervention
5 juillet 2011
10 juin 2011 à 10:56
10 juin 2011 à 10:56
Ca ne marche pas...
Cela dit j'ai l'impression que la macro se bloque sur le deuxième doublon dans lequel le stock dans la colonne D est égal à zéro. Peut être que le problème vient du fait que quand la valeur est égale à zéro, celle ci est effacée...
Vous en pensez quoi?
Cela dit j'ai l'impression que la macro se bloque sur le deuxième doublon dans lequel le stock dans la colonne D est égal à zéro. Peut être que le problème vient du fait que quand la valeur est égale à zéro, celle ci est effacée...
Vous en pensez quoi?
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
155
10 juin 2011 à 11:01
10 juin 2011 à 11:01
Bonjour,
que je suis bête, je viens de trouver pourquoi :
Sub SoustractionBom()
Sheets("synthese").Select
Dim ligne As Integer
ligne = 2
Do while cells(ligne,1) <> ""
If Cells(ligne, 2) = Cells(ligne + 1, 2) And Cells(ligne, 3) = Cells(ligne + 1, 3) Then
Cells(ligne + 1, 4) = Cells(ligne, 4) + Cells(ligne, 1)
end if
ligne = ligne + 1
Loop
End Sub
que je suis bête, je viens de trouver pourquoi :
Sub SoustractionBom()
Sheets("synthese").Select
Dim ligne As Integer
ligne = 2
Do while cells(ligne,1) <> ""
If Cells(ligne, 2) = Cells(ligne + 1, 2) And Cells(ligne, 3) = Cells(ligne + 1, 3) Then
Cells(ligne + 1, 4) = Cells(ligne, 4) + Cells(ligne, 1)
end if
ligne = ligne + 1
Loop
End Sub
llecarpentier
Messages postés
29
Date d'inscription
mercredi 1 juin 2011
Statut
Membre
Dernière intervention
5 juillet 2011
10 juin 2011 à 11:07
10 juin 2011 à 11:07
Miracle!!!!
Ca fonctionne au poil!!!
Merci beaucoup.
Ca fonctionne au poil!!!
Merci beaucoup.