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 !
De retour de vacances : Merci MichD ! C'est excellent !
2 petits ajustements : 1) la macro ne semble fonctionner qu'avec 2 codes (soit 4 colonnes au final) or j'en ai plus de 30... 2) peut-on éviter d'inscrire 0 quand la somme est nulle ?
Je te remercie par avance.
Sylvain
De retour de vacances : Merci MichD !
C'est excellent !
2 petits ajustements :
1) la macro ne semble fonctionner qu'avec 2 codes (soit 4 colonnes au
final) or j'en ai plus de 30...
2) peut-on éviter d'inscrire 0 quand la somme est nulle ?
De retour de vacances : Merci MichD ! C'est excellent !
2 petits ajustements : 1) la macro ne semble fonctionner qu'avec 2 codes (soit 4 colonnes au final) or j'en ai plus de 30... 2) peut-on éviter d'inscrire 0 quand la somme est nulle ?
Je te remercie par avance.
Sylvain
MichD
http://cjoint.com/?ADAt7gXawtG
MichD -------------------------------------------- "Sylvain P." a écrit dans le message de groupe de discussion :
De retour de vacances : Merci MichD ! C'est excellent !
2 petits ajustements : 1) la macro ne semble fonctionner qu'avec 2 codes (soit 4 colonnes au final) or j'en ai plus de 30... 2) peut-on éviter d'inscrire 0 quand la somme est nulle ?
Je te remercie par avance.
Sylvain
http://cjoint.com/?ADAt7gXawtG
MichD
--------------------------------------------
"Sylvain P." a écrit dans le message de groupe de discussion :
13ea4d13-bee5-421d-9b24-31562b28dbda@hd10g2000vbb.googlegroups.com...
De retour de vacances : Merci MichD !
C'est excellent !
2 petits ajustements :
1) la macro ne semble fonctionner qu'avec 2 codes (soit 4 colonnes au
final) or j'en ai plus de 30...
2) peut-on éviter d'inscrire 0 quand la somme est nulle ?
MichD -------------------------------------------- "Sylvain P." a écrit dans le message de groupe de discussion :
De retour de vacances : Merci MichD ! C'est excellent !
2 petits ajustements : 1) la macro ne semble fonctionner qu'avec 2 codes (soit 4 colonnes au final) or j'en ai plus de 30... 2) peut-on éviter d'inscrire 0 quand la somme est nulle ?
Je te remercie par avance.
Sylvain
Sylvain P.
OK. Merci. Pour fonctionner avec tous les codes, j'ai remplacé la ligne .Range("A2:D" & DL).FillRight par .Range("A2", .Cells(DerLig, DL)).FillRight
En revanche, l'addition de 2 cellules vides se traduit bien par l'inscription d'un 0, alors que la cellule devrait rester vide.
OK. Merci.
Pour fonctionner avec tous les codes, j'ai remplacé la ligne
.Range("A2:D" & DL).FillRight
par
.Range("A2", .Cells(DerLig, DL)).FillRight
En revanche, l'addition de 2 cellules vides se traduit bien par
l'inscription d'un 0, alors que la cellule devrait rester vide.