comparaison et addition

  • Initiateur de la discussion scorcha
  • Date de début
S

scorcha

Guest
Bonjour les pros :)

j'ai besoin de votre aide, et ma demande est, a mon gout, trop complique puisque je n'y arrive pas, soit il me copie tout soit il ne se passe rien

j'ai 10 feuilles excel fomaté comme cela

| EDITEUR | FAMILLE | GENCODE | LIBELLE | DE| AN-1 | M-1 | S-1 | S COM | STOCK | PRIX | VALORISATION | A COMMANDER

je voudrais faire une comparaison par rapport a GENCODE et copier ou additionner les valeurs de la ligne correspondante sur une 11eme feuille nomme total

si GENCODE n'existe pas sur total alors on copie la ligne entiere dans la feuille total
si GENCODE existe on vient additionner uniquement les champs AN-1, M-1, S-1, STOCK sur la ligne GENCODE existante dans la feuille TOTAL

ai je ete clair ou pas ?! :)

2 petites question subsidiaires :
- comment ne selectionner que les lignes non remplies sur une feuille (genre pour faire un joli cadre autour) ?
- comment faire le total d'une colonne sur la derniere +1 d'une colonne ?

merci les pros.
 
C

Celeda

Guest
Bonsoir,

Je veux bien t'aider mais je comprends pas !!

10 feuilles et

si GENCODE n'existe pas = c'est une feuille ou un champ car si elle n'existe pas ??!!!

si GENCODE existe on vient additionner uniquement les champs AN-1, M-1, S-1, STOCK sur la ligne GENCODE existante dans la feuille TOTAL;
c'est donc une feuille ?!!

met un fichier zippe exemple parce que là je nage, désolée

à suivre

Celeda
 
S

scorcha

Guest
GENCODE est un champ, c'est le code barre qui se trouve derriere chaque produit destine a la vente.

le but est d'addtionner compiler et additioner chaque valeur des 10 feuilles les champs AN-1, M-1, S-1 et STOCK correspondant a une gencode

je tai joint un exemple avec les 10 feuilles a travailler.

j'ai reduit les lignes a 10 par feuille puisque j'arrive sur certains a 1000+...
 

Pièces jointes

  • TOTALex.zip
    4.4 KB · Affichages: 15
C

Celeda

Guest
Re: comparaison et addition sans doublons

Bonjour,

Pour faire ce que tu désires, tu as deux solutions possibles envisageables : une en macro et une en formules.

Pour la macro, il faut voir comment ils pourraient te la faire ; avec plusieurs pages (tu en as combien au juste des villes - voir si la macro ne va pas saturer au bout d'un moment - I do not know) ou bien sur une seule page que tu transformerai en base de données.

Base de données que j'ai faite pour la partie formules. Mais attention, je me suis apercue toute à la fin du travail que deux numéros étaient en doublons. Et depuis le départ, je n'ai pas tenu compte de ce paramètre. Donc en contrôlant les totaux des sommes prod avec un TCD, des différences sont apparues : normal, la somme prod a compté deux fois les deux numéros puisque je ne lui ai pas demandé de faire une concaténation entre le Genecode et la famille et l'editeur. Mais c'est pas grave.
As-tu vraiment des numéros doublons avec des éditeurs différents ou était-ce seulement un report de numéros au hasard ?

Enfin bref, petit détail d'importance à corriger. Le fait est que la base de donnée s'avère pour ce cas ci plus efficace pour arriver à ton tableau final de récapitulation des donneés.

Pour cela, c'est simple,
Étape 1 - tu montes une base de tes produits (feuille base) et tu nommes tes colonnes (à chaque nouvel ajout faire ajout dans la feuille Total);

Etape 2- tu inscrits tout dans une bd (feuille BDVilles) dans laquelle je t'ai mis des formules nommées et une liste de validation pour Genecode (ainsi tu n'as plus que le Genecode à choisir et tout le reste s'inscrit - Si Genecode s'allonge tu as de la marge voir dans Data-Validation- Liste - la formule qui te mets à l'abri des ajouts) - tu nommes tes colonnes;

Etape 3 - tu prépares ton tableau de récap, en reprenant ta base de Genecode que tu colles dedans - tu remets de nouveau les formules - et tu appliques les sommes prod pour les calculs;

mais attention si doublons, il faut retoucher les formules nommées car dans l'Index(Equi ....) il faut concaténer avec l'editeur et la famille - Dommage, je l'ai vu trop tard et il est tard pour que je recommence mais voyons d'abord si tu as des doublons et donc il faut retoucher aussi les sommes prod aussi.

De toute façon la base est là, si quelqu'un veut s'essayer à les modifier, ce sera une V2 - utile quand même.

Bon je pense d'avoir tout dit- Le tcd et les résultats c'est juste pour le contrôle.

Et pour la macro, je passe le relais because c'est pas encore mon truc.

Celeda
 

Pièces jointes

  • CompareretAddition_V1.zip
    20.4 KB · Affichages: 35
S

scorcha

Guest
Re: comparaison et addition sans doublons

Bonjour,

j'avais ecarte la solution formules etant donne que ce fichier est genere une fois par semaine a partir de 10 fichiers textes.

chaque semaine je repars de zero, je compile le tout, il y a juste ce probleme de totalisation par gencode qui me pose soucis.

bon tu m'as deja aide, puisque je n'avais pas pense a regroupe les 10 feuilles sur une seule pour pouvoir ensuite totaliser

la je me casse toute la tete a trouver une nouvelle macro qui pourrait me faire ce que tu as fait en formules.

le but est que je recupere mes 10 fichiers textes manuellement dans un rep et ensuite apres avoir appuye sur un bouton macro, le tout se fasse, il me reste plus qu' a analyser les chiffres...

Donc gros appel aux pros du vba :))

tx.
 
S

scorcha

Guest
Re: comparaison et addition sans doublons

re

bon encore merci Celeda, c'est toi qui m'a permis de debogger ce foutu vba grace a la solution d'additionner les 10 feuilles sur une seule

et voila le code pour ceux qui le voudrait, il n'est peut etre pas tres "pro" mais il marche tres bien sur une feuille de 2000+ lignes

voila a adapter suivant les besoins :).

Windows("TOTAL.xls").Activate
nligne = 2
nlignerecap = 2
compteur = 0
ligneinit = 1
Do
Sheets("TOTAL").Select
If (Range("C" & nligne).Value) <> (Range("C" & ligneinit).Value) Then
If compteur = 0 Then
Rows(nligne).Select
Selection.Copy
Sheets("RECAPTOTAL").Select
Rows(nlignerecap).Select
ActiveSheet.Paste
ligneinit = nligne
Else
compteur = compteur + 1
End If
Else
If (Range("C" & nligne).Value) <> (Range("C" & (nligne + 1)).Value) Then
Sheets("RECAPTOTAL").Select
Range("F" & nlignerecap).Select
ActiveCell.FormulaR1C1 = "=SUM(TOTAL!R" & ligneinit & "C6:R" & nligne & "C6)"
Range("G" & nlignerecap).Select
ActiveCell.FormulaR1C1 = "=SUM(TOTAL!R" & ligneinit & "C7:R" & nligne & "C7)"
Range("H" & nlignerecap).Select
ActiveCell.FormulaR1C1 = "=SUM(TOTAL!R" & ligneinit & "C8:R" & nligne & "C8)"
Range("J" & nlignerecap).Select
ActiveCell.FormulaR1C1 = "=SUM(TOTAL!R" & ligneinit & "C10:R" & nligne & "C10)"
nlignerecap = nlignerecap + 1
ligneinit = nligne
compteur = 0
End If
End If
nligne = nligne + 1
Loop Until IsEmpty(ActiveCell)

that's all
 
S

scorcha

Guest
Re: comparaison et addition sans doublons

Oups j'allais oublie
avant d'executer ce code il faut que la colonne de comparaison soit triee par ordre croissant
sinon le code se plante et fait n'importe quoi...
 

Discussions similaires

Réponses
6
Affichages
421

Statistiques des forums

Discussions
314 121
Messages
2 106 128
Membres
109 495
dernier inscrit
jerome bonneau