Doublons sur plusieurs colonnes

SALAH

XLDnaute Occasionnel
Bonjour à tous et à toutes

Permettez moi de vous dire que c 'est la première fois que je viens sur ce forum, je l'ai beaucoup consulté mais n' ayant pas trouvé exactement ce que je recherche alors je me suis permis d' envoyer ce fichier afin qu' une ame charitable me dépanne de ce processus infernal.
En fait je gère une réception de pochettes clients et une commande faite par le SAV, il me faudrait soit par une formule ou VBA de supprimer les doublons, additionner les quantités et faire une comparaisons sur une autre feuille afin de distinguer les differences de quantité et les pochettes non livrées ou manquantes sur la commande

Vous en remerciant à l' avance
 

Pièces jointes

  • doublons sur 2 fichiers.zip
    24.8 KB · Affichages: 192
  • doublons sur 2 fichiers.zip
    24.8 KB · Affichages: 189
  • doublons sur 2 fichiers.zip
    24.8 KB · Affichages: 193

Cousinhub

XLDnaute Barbatruc
Re : Doublons sur plusieurs colonnes

Re-,
comme tu peux le constater, le TCD prendra toutes les données que tu ajouteras dans les 4 premières colonnes.
En cliquant à l'intérieur du TCD, une nouvelle barre d'outils apparaît (ou sinon, Affichage/Barre d'outils, et sélectionner Tableau Croisé Dynamique)
Pour mettre à jour les données, il suffit d'appuyer sur le point d'exclamation rouge.
En cliquant sur Tableau Croisé Dynamique, un menu déroulant apparait.
Sélectionne Assistant.... et tu te retrouves avec une boîte de dialogue.
En cliquant sur précédent, tu verras les zones prises en compte pour la construction du tableau. Ici, ce sont des zones nommées dynamiques. Tu peux déterminer toi-même les zones que tu veux
 

SALAH

XLDnaute Occasionnel
Re : Doublons sur plusieurs colonnes

BhBh

Je te remercie pour cette magnifique explication, on ne cesse jamais de découvrir et d' apprendre. Je te remercie pour tout et là je vais m' y mettre sérieusement

Je te souhaite une bonne journée

Abientot certainement
 

Cousinhub

XLDnaute Barbatruc
Re : Doublons sur plusieurs colonnes

Bonjour, une autre solution, sans utiliser les TCD, par la fonction Données/consolider :

le code :

Sub consoli()
Dim cel As Range, MonDico, temp, I, Plg1 As Range, Plg2 As Range
Dim plage1, plage2
Set Plg1 = Range("A2:A" & Range("A65536").End(xlUp).Row)
Plg1.Name = "plage1"
Set Plg2 = Range("C2:C" & Range("C65536").End(xlUp).Row)
Plg2.Name = "plage2"
Set MonDico = CreateObject("Scripting.Dictionary")
For Each cel In Range("plage1")
If Not MonDico.Exists(cel.Value) Then MonDico.Add cel.Value, cel.Value
Next cel
For Each cel In Range("plage2")
If Not MonDico.Exists(cel.Value) Then MonDico.Add cel.Value, cel.Value
Next cel
temp = MonDico.items
For I = LBound(temp) To UBound(temp): Cells(1 + I, 6) = temp(I): Next
Range("F1:F" & Range("F65000").End(xlUp).Row).Select
Set Plg1 = Range("A2:B" & Range("A65536").End(xlUp).Row)
Plg1.Name = "plage1"
Set Plg2 = Range("C2:D" & Range("C65536").End(xlUp).Row)
Plg2.Name = "plage2"
Selection.Consolidate Sources:=Array("plage1", "plage2"), Function:=xlSum, TopRow:=True, LeftColumn:=True
Range("F2").Select
End Sub
 

Pièces jointes

  • salahV2.zip
    24 KB · Affichages: 99
  • salahV2.zip
    24 KB · Affichages: 100
  • salahV2.zip
    24 KB · Affichages: 100

SALAH

XLDnaute Occasionnel
Re : Doublons sur plusieurs colonnes

BhBh

En effet la presentation est nettement meilleur

Peux tu juste me résumer ce code quel différence avec le VBA ? de quelle manière on arrive au résultat ?
Pourrais tu si ce n' est pas trop demandé me rajouter un onglet pour y apporter des conclusions genre " Voici les clients qui ont une différence de quentité ": les uns en dessous des autres avec la quantité adéquate et l' abscence de clients dans l'une et l' autre des catégories

Te remerciant
 

Cousinhub

XLDnaute Barbatruc
Re : Doublons sur plusieurs colonnes

Re-,

Peux tu juste me résumer ce code quel différence avec le VBA ? de quelle manière on arrive au résultat ?

Il n'y a pas de différences, C'est du VBA
Pour obtenir le résultat, je charge dans un tableau en mémoire tous les codes clients, si ceux-ci n'y sont pas encore inscrits.
Je colle la liste à partir de la cellule F2, et ensuite, j'utilise la fonction Excel Données/Consolider (regard l'aide, ce sera plus explicite que mes tentatives d'explication ;))
Pour la seconde partie, je ne comprends pas trop, peux-tu renvoyer le fichier, avec dans l'onglet supplémentaire ce que tu désires, on ira sûrement plus vite
 

SALAH

XLDnaute Occasionnel
Re : Doublons sur plusieurs colonnes

BhBh

Merci il faudrait que je m' y mette, pour la seconde partie je t' envoie le fichier

Merci
 

Pièces jointes

  • salahV2.zip
    21.8 KB · Affichages: 31
  • salahV2.zip
    21.8 KB · Affichages: 32
  • salahV2.zip
    21.8 KB · Affichages: 31

Bebere

XLDnaute Barbatruc
Re : Doublons sur plusieurs colonnes

bonjour Salah,BhBh

essaye ce code

Option Explicit

Sub Conclusion()
Dim Plg As Variant, I As Long, L As Long, Client As String, Conclusion As String

With Sheets("Feuil1")
Plg = .Range("F2:H" & .Range("F65536").End(xlUp).Row)
End With

For I = 1 To UBound(Plg, 1)
Client = Plg(I, 1)

If Plg(I, 2) = "" Then _
Conclusion = "Le client" & Client & " quantité " & Plg(I, 3) & " n'avait pas été commandée mais est arrivée en Palette"

If Plg(I, 3) = "" Then _
Conclusion = "Le client " & Client & " quantité " & Plg(I, 2) & " avait bien été commandée mais n' est pas arrivée en Palette"

If Plg(I, 2) <> "" And Plg(I, 3) <> "" Then _
Conclusion = "Le client " & Client & " a une différence de " & Plg(I, 2) - Plg(I, 3) & " la quantité livrée en palette n' est pas totale"

With Sheets("Conclusion")
L = .Range("A65536").End(xlUp).Row + 1
.Range("A" & L) = Conclusion
.Columns(1).AutoFit
End With

Next I

End Sub

à bientôt
 

SALAH

XLDnaute Occasionnel
Re : Doublons sur plusieurs colonnes

Bonjour le forum

Bonjour bebere

Je commençais à désespérer, Ton code marche très bien, je l' étudierais plus tard mais dit moi serait il possible de mettre un interligne entre chaque ligne et que le résultat N° du client , la quantité en chiffre, palette et commande soit de couleur rouge

Te remerciant

Salah
 

Bebere

XLDnaute Barbatruc
Re : Doublons sur plusieurs colonnes

Voilà Salah en couleurs et ligne vide
Sub Conclusion()
Dim Plg As Variant, I As Long, L As Long, Valeur As Integer, Client As String
Dim Conclusion As String, Debut As Integer, Longueur As Integer, Longueur1 As Integer

Application.ScreenUpdating = False

With Sheets("Feuil1")
Plg = .Range("F2:H" & .Range("F65536").End(xlUp).Row)
End With

For I = 1 To UBound(Plg, 1)
Client = Plg(I, 1)

If Plg(I, 2) = "" Then
Conclusion = "Le client " & Client & " quantité : " & Plg(I, 3) & _
" n'avait pas été commandée mais est arrivée en Palette"
Debut = InStr(Conclusion, ":") + 2
Longueur = Len(Client)
Valeur = Plg(I, 3)
Longueur1 = Len(CStr(Valeur))
End If

If Plg(I, 3) = "" Then
Conclusion = "Le client " & Client & " quantité : " & Plg(I, 2) & _
" avait bien été commandée mais n' est pas arrivée en Palette"
Debut = InStr(Conclusion, ":") + 2
Longueur = Len(Client)
Valeur = Plg(I, 2)
Longueur1 = Len(CStr(Valeur))
End If

If Plg(I, 2) <> "" And Plg(I, 3) <> "" Then
Conclusion = "Le client " & Client & " a une différence de : " & Plg(I, 2) - Plg(I, 3) & _
" la quantité livrée en palette n' est pas totale"
Debut = InStr(Conclusion, ":") + 2
Longueur = Len(Client)
Valeur = Plg(I, 2) - Plg(I, 3)
Longueur1 = Len(CStr(Valeur))
End If

With Sheets("Conclusion")
L = .Range("A65536").End(xlUp).Row + 1
If L > 2 Then L = L + 1
.Range("A" & L) = Conclusion
.Range("A" & L).Characters(11, Longueur).Font.ColorIndex = 3
.Range("A" & L).Characters(Debut, Longueur1).Font.ColorIndex = 3
.Columns(1).AutoFit
End With

Next I

Application.ScreenUpdating = True

End Sub

à bientôt
 

SALAH

XLDnaute Occasionnel
Re : Doublons sur plusieurs colonnes

Tu es trop fort Bebere, si je pouvais en faire autant !!

une toute dernière chose, par quelle formule peux tu m' expliquer çà pour obtenir une suite logique par rapport à une quantité

deux colonnes

quantité nombre

200 1
200 2
200 3
500 1
500 2
500 3
500 4
500 5
50 1
50 2
50 3
50 4

Merci
 

Bebere

XLDnaute Barbatruc
Re : Doublons sur plusieurs colonnes

Salah
une petite démo,si bien compris

Sub Suite()
Dim i As Integer, TblSuite As Variant
'tableau de 3 lignes,1 colonne
ReDim TblSuite(1 To 3, 1 To 1)

For i = 1 To 3
TblSuite(i, 1) = 200 * i
MsgBox "TblSuite(" & i & ", 1)=" & TblSuite(i, 1)
Next i

'tableau de 5 lignes,1 colonne
ReDim TblSuite(1 To 5, 1 To 1)

For i = 1 To 5
TblSuite(i, 1) = 500 * i
MsgBox "TblSuite(" & i & ", 1)=" & TblSuite(i, 1)
Next i

End Sub

à bientôt
 

SALAH

XLDnaute Occasionnel
Re : Doublons sur plusieurs colonnes

Bebere

En fait c 'est bien plus simple que sa , il me faut juste une formule à incrire à coté de la quantité qu' on pourrait recopier avec la poignée en descendant et qui nous donnerait le nombre pour chaque ligne comme dans l' exemple ci-dessus

Merci encore pour ton dévouement
 

SALAH

XLDnaute Occasionnel
Re : Doublons sur plusieurs colonnes

Bonsoir Bebere

En fait ce que je désire c 'est plutot l' exemple joint

Bonne nuit
 

Pièces jointes

  • exemple.xls
    22 KB · Affichages: 76
  • exemple.xls
    22 KB · Affichages: 79
  • exemple.xls
    22 KB · Affichages: 76

Discussions similaires

Réponses
13
Affichages
342

Statistiques des forums

Discussions
311 720
Messages
2 081 902
Membres
101 834
dernier inscrit
Jeremy06510