Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Totaux selon code

14 réponses
Avatar
Sylvain P.
Bonjour =E0 tous,

J'ai un fichier qui contient des donn=E9es sur le format suivant :
dvg1% dvg1voix dvg2% dvg2voix
0,2 409 12,8 591
0,2 409 12,8 591

A chaque fois donc, un code de 3 lettres avec un num=E9ro puis soit un %
soit un nombre.
Avec la macro suivante, je supprime les num=E9ros associ=E9s au code,
j'additionne les % et les nombres dans des colonnes diff=E9rentes :
Sub TotauxCodes()

'Supprime les num=E9ros
For Each c In Rows("1:1")
x =3D c.Value
For i =3D 1 To 9
x =3D Application.Substitute(x, i, "")
Next
c.Value =3D Application.Substitute(x, 0, "")
Next c


'Additionne les colonnes de % et de voix pour chaque code
For lig =3D 1 To 10 'A adapter
For col =3D 1 To 8 'A adapter
If InStr(Cells(1, col), "dvg%") > 0 And Cells(lig, col) > 0
Then
Feuil3.Cells(lig, 10) =3D Feuil3.Cells(lig, 10) +
Feuil2.Cells(lig, col) ' Additionne les % en colonne 10 sur la Feuil3
Feuil3.Cells(lig, 11) =3D Feuil3.Cells(lig, 11) +
Feuil2.Cells(lig, col + 1) ' Additionne les voix en colonne 11 sur la
Feuil3
End If
Next
Next

End Sub

Le probl=E8me c'est que j'ignore la liste des codes et qu'ils peuvent
changer (mais le format reste toujours le m=EAme).
Il faudrait que la macro identifie les diff=E9rents codes, sans que j'ai
=E0 les programmer dans le dur.

Merci par avance pour toutes vos id=E9es et suggestions tr=E8s
pr=E9cieuses !

A bient=F4t,

Sylvain

10 réponses

1 2
Avatar
MichD
Bonjour,

Pourquoi te casses-tu le bésik à publier ton code ?

Poser une question c'est simple...

Voici ce que j'ai dans une cellule ou dans plusieurs cellules
et voici ce que je voudrais obtenir.

Moi, je n’ai rien compris à ta question. Tu aurais pu publier tout un
livre d'exemple de code que je n'aurais pas compris davantage ce
qu'est ton problème !

Attendons, il y a peut-être quelqu'un qui a bien identifié ta difficulté...


MichD
--------------------------------------------
Avatar
Sylvain P.
Ok ! Alors, je reformule ma question.

J'ai un fichier qui contient des données sur le format suivant :
dvg1% | dvg1voix | dvg2% | dvg2voix | srt1% | srt1voix | srt2% |
srt2voix | srt3% | srt3voix
0,2 | 409 | 12,8 | 591

A chaque fois donc, un code de 3 lettres avec un numéro puis soit un
%, soit un nombre.
J'aimerais avoir en feuille2 la somme des voix et des % pour chaque
code :
dvg% | dvgvoix
13 | 1000

En espérant avoir été plus clair !
Merci par avance pour vos idées.
Avatar
MichD
Reprenons ton problème :

En A2 : .02
en B2 : 409
En C2 : 12.8
En D2 : 591
Tu pourrais avoir d'autres colonnes comme ça en alternance

Si tu veux additionner les pourcentages :
Validation matricielle : Maj + Ctrl + Enter
G2 est arbitraire, tu remplaces par l'adresse de ta dernière colonne
=SOMME(SI(MOD(COLONNE(Feuil1!A2:G2);2)=1;Feuil1!A2:G2))

Pour additionner les voix :
même principe... validation matricielle :
=SOMME(SI(MOD(COLONNE(Feuil1!A2:G2);2)=0;Feuil1!A2:G2))

Comme tu fais référence aux cellules d'une autre feuille,
tu devras ajouter le nom de la feuille dans les adresses.

Tu recopies ces formules sur le nombre de lignes appropriées.


MichD
--------------------------------------------
"Sylvain P." a écrit dans le message de groupe de discussion :


Ok ! Alors, je reformule ma question.

J'ai un fichier qui contient des données sur le format suivant :
dvg1% | dvg1voix | dvg2% | dvg2voix | srt1% | srt1voix | srt2% |
srt2voix | srt3% | srt3voix
0,2 | 409 | 12,8 | 591

A chaque fois donc, un code de 3 lettres avec un numéro puis soit un
%, soit un nombre.
J'aimerais avoir en feuille2 la somme des voix et des % pour chaque
code :
dvg% | dvgvoix
13 | 1000

En espérant avoir été plus clair !
Merci par avance pour vos idées.
Avatar
Sylvain P.
Merci beaucoup.
J'ai plusieurs centaines de colonnes, plus de 60000 lignes et surtout
plusieurs codes qui ne sont pas tous côte à côte :
dvg1% | dvg1voix | dvg2% | dvg2voix | srt1% | srt1voix | srt2% |
srt2voix | srt3% | srt3voix

C'est pour cette raison que j'étais parti sur une macro plutôt qu'une
formule, qui n'est pas vraiment adaptée à mon sens étant donné le
fichier.
D'autres suggestions ?
Anyone ?

Merci encore !! et merci par avance.

Sylvain
Avatar
MichD
Les formules données vont fonctionner même si tu as des cellules vides
dans certaines colonnes, pourvu que le principe d'alternance telle que
tu as énoncé dans la donne de ton problème demeure valide.

As-tu essayé ?


MichD
--------------------------------------------
"Sylvain P." a écrit dans le message de groupe de discussion :


Merci beaucoup.
J'ai plusieurs centaines de colonnes, plus de 60000 lignes et surtout
plusieurs codes qui ne sont pas tous côte à côte :
dvg1% | dvg1voix | dvg2% | dvg2voix | srt1% | srt1voix | srt2% |
srt2voix | srt3% | srt3voix

C'est pour cette raison que j'étais parti sur une macro plutôt qu'une
formule, qui n'est pas vraiment adaptée à mon sens étant donné le
fichier.
D'autres suggestions ?
Anyone ?

Merci encore !! et merci par avance.

Sylvain
Avatar
Sylvain P.
Oui, j'ai essayé.
ça marche : j'ai bien la somme des pourcentages et la somme des voix
(en alternance une colonne sur deux).

Mais ce que je souhaite, c'est d'avoir la somme des pourcentages et la
somme des voix pour chaque code (quel que soit son numéro : par ex,
addition de dvg1%+dvg2%+dvg3%...). Ainsi, si j'ai 30 codes, je dois
avoir en feuil3 60 colonnes (soit 30 sommes des pourcentages et 30
sommes des voix).

Est-ce plus clair ?
Désolé pour ce flou et merci pour ton aide.

Sylvain
Avatar
MichD
Utilise cette adresse cijoint.fr et publie seulement quelques lignes de données de ta feuille
et dis nous le résultat que tu veux obtenir (la présentation de ce dernier s'il y a lieu).
Retourne-nous ici l'adresse que tu auras obtenue.

Évidemment, fais disparaître l'information qui pourrait être sensible!


MichD
--------------------------------------------
"Sylvain P." a écrit dans le message de groupe de discussion :


Oui, j'ai essayé.
ça marche : j'ai bien la somme des pourcentages et la somme des voix
(en alternance une colonne sur deux).

Mais ce que je souhaite, c'est d'avoir la somme des pourcentages et la
somme des voix pour chaque code (quel que soit son numéro : par ex,
addition de dvg1%+dvg2%+dvg3%...). Ainsi, si j'ai 30 codes, je dois
avoir en feuil3 60 colonnes (soit 30 sommes des pourcentages et 30
sommes des voix).

Est-ce plus clair ?
Désolé pour ce flou et merci pour ton aide.

Sylvain
Avatar
Sylvain P.
Et voilà :
http://www.cijoint.fr/cjlink.php?file=cj201104/cijj3wv5ce.xls

En Feuil1 : ce que j'ai comme données.
En Feuil2 : ce que je souhaite obtenir.

Merci !!

Sylvain
Avatar
MichD
Ton fichier : http://www.cijoint.fr/cjlink.php?file=cj201104/cijrnZg8RP.xls
La macro est dans le module1

Dans la procédure, Feuil4 et Feuil3 représentent la propriété Name des objets Feuille
visible seulement dans la fenêtre de l'éditeur de code et non le nom des onglets des feuilles

Dans la feuil4 est une copie de la feuil1 et les résultats de la macro est dans la feuil3


MichD
--------------------------------------------

"Sylvain P." a écrit dans le message de groupe de discussion :


Et voilà :
http://www.cijoint.fr/cjlink.php?file=cj201104/cijj3wv5ce.xls

En Feuil1 : ce que j'ai comme données.
En Feuil2 : ce que je souhaite obtenir.

Merci !!

Sylvain
Avatar
Jacquouille
Bonsoir Sylvain
Pourquoi n'insères-tu pas une ligne en A2 et y mettre la somme de toute la
colonne?
Ensuite, tu fais la somme des col à % (¥+C5) et tu obtiens bien 72.4 comme
le demande ton exemple. tu peux même tirer cette formule vers la
droite.....

C'est dans les plus gros fichier qu'il faut faire simple.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Sylvain P." a écrit dans le message de groupe de discussion :


Et voilà :
http://www.cijoint.fr/cjlink.php?file=cj201104/cijj3wv5ce.xls

En Feuil1 : ce que j'ai comme données.
En Feuil2 : ce que je souhaite obtenir.

Merci !!

Sylvain
1 2