Algorithme Excel
Fermé
Alain
-
3 févr. 2009 à 10:13
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 4 févr. 2009 à 22:42
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 4 févr. 2009 à 22:42
A voir également:
- Créer un algorithme sur excel
- Créer un compte google - Guide
- Créer un compte gmail - Guide
- Créer un compte instagram sur google - Guide
- Comment créer un groupe whatsapp - Guide
- Créer liste déroulante excel - Guide
5 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
3 févr. 2009 à 10:34
3 févr. 2009 à 10:34
bonjour
Tu peux utiliser cet algorithme :
Tu peux utiliser cet algorithme :
Public Sub somme() Dim lig As Long [J1].Value = 0 For lig = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row If Cells(lig, 1).Value <> Cells(lig + 1, 1).Value _ And Cells(lig, 2).Value = Cells(lig + 1, 2).Value _ And Cells(lig, 3).Value = Cells(lig + 1, 3).Value Then [J1].Value = [J1].Value + 1 End If Next lig End Sub
3 févr. 2009 à 11:42
Tout d'abord merci pour ta reponse (rapide !). Ca fait vraiment plaisir de savoir qu'il y a encore des gens pret à aider. Ca me redonne fois en l'humanité :)
Je viens de tester ton algorithme sur une partie de mon fichier excel que j'avais traiter à la main pour voir si ca collait mais je ne retrouve pas le meme resultat...
Je vais essayer de comprendre ton algo, dis moi si je me trompe... car j'ai quelques notions mais ca date un peu :/
Public Sub somme() ----------Creation de la macro
Dim lig As Long ----------Creation d'une variable 32-bit
[J1].Value = 0 ----------Initialisation de J1 à 0
Jusque la ca va je pense !
For lig = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row ---------- Boucle qui parcours le tableau ?
If Cells(lig, 1).Value <> Cells(lig + 1, 1).Value _ ----------Test de difference (ligne n et n+1) colonne A
And Cells(lig, 2).Value = Cells(lig + 1, 2).Value _ ----------alors test d'égalité (ligne n et n+1) colonne B
And Cells(lig, 3).Value = Cells(lig + 1, 3).Value Then ----------alors test d'égalité (ligne n et n+1) colonne C
[J1].Value = [J1].Value + 1 -----------Incrementation de J1
End If
Next lig
End Sub
Je pense que le resultat est faux (pour une question d'ordre) car il test d'abord si deux lignes successives dans la colonne A sont differentes. et pres il effectue les autres tests. Seulement il faut commencer par la troisieme, sinon ca change tout.
J'ai donc interverti deux lignes pour voir mais cela ne fonctionne pas non plus....
Public Sub somme()
Dim lig As Long
[J1].Value = 0
For lig = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row
If Cells(lig, 3).Value = Cells(lig + 1, 3).Value _ --------------------D'abord je teste la 3ieme colonne
And Cells(lig, 1).Value <> Cells(lig + 1, 1).Value _ ----------------------------------Ensuite je test la premiere
And Cells(lig, 3).Value = Cells(lig + 1, 3).Value Then ---------------------------------------et enfin la deuxieme
[J1].Value = [J1].Value + 1
End If
Next lig
End Sub
pour le test j'ai supprimé toutes les colonnes superflues pour n'avoir que les 3 interressantes comme dans mon exemple.
Car en verité ce sont les colonnes A, E et F dans le fichier qui m'interresse.
Il faut d'abord tester si il y a deux lignes identiques successives dans la colonne F.
Si c'est le cas, tester si ces memes lignes dans la A sont differentes
Enfin, si toujours les meme lignes dans la colonne E sont identiques, alors incrementer J1.
Je ne m'en sort pas..... est-ce compliqué de colorier les lignes interressantes ? comme ca je pourrais voir tout de suite si ca colle avec le partie que j'ai deja traité.
En tout cas merci encore pour ton aide,
Dans l'attente, je vais continuer a bidouiller et comprendre un peu le fonctionnement des macros.