• Initiateur de la discussion Initiateur de la discussion JJ
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

JJ

Guest
Bonsoir à tous
Je voudrais écrire une macro qui me compte des données binaires (0 et 1) dans un tableau excel (12 colonnes)

La première chose serait de poser la question du nombres de lignes remplies.

Sachant que chaque colonne comporte des 0 et des 1, je voudrais à la fin de la dernière ligne de chaque col (donc réponse à la question précédente +1), le nombre de 0 et de 1 trouvés en remontant jusqu'à la ligne 1 (le calcul remonte de la dernière à la premiere ligne, par contre le résultat descend de la derniere ligne de données +1 jusqu a la fin du comptage)

ex: (je mets en forme ligne, mais imaginez que c'est la colonne A:
0 1 1 0 0 0 1 1 1 0
Depuis la ligne 11, il va donc compter et ecrire en descendant:
1(car 1 zero)puis ligne suivante 3 (en gras pour differencier car c'est 3 uns) puis 3 (pas en gras car 3 zeros) puis 2 en gras car 2 uns) et finalement 1 (pas en gras)
et ceci pour toutes les colonnes

je ne sais pas si j'ai été assez clair?
Merci si vous pouvez m'aider?
Bonne soirée
jj
 
Bonsoir

Ci joint un fichier qui devrait répondre au problème.
J'ai un problème pour 'graisser' la valeur. il faut corriger la macro cf commentaires.
Avant de lancer la macro il faut se positionner sur la première cellule qui contient les données.

A+ [file name=valbin.zip size=9959]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/valbin.zip[/file]

Message édité par: jp14, à: 08/02/2006 20:23
 

Pièces jointes

Bonsoir

Ci joint le fichier avec la macro rectifiée (graissage et 12 colonnes) [file name=valbin_20060208202550.zip size=11747]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/valbin_20060208202550.zip[/file]

Il faut modifier une ligne
mettre
For i = lignel To (lignel - nbligne - 1) Step -1
au lieu de
For i = lignel To (lignel - nbligne) Step -1

Message édité par: jp14, à: 09/02/2006 10:22
 

Pièces jointes

Bonjour, j'ai testé vos macros, j'ai un problème avec celle de Valbin: croix rouge et erreur apres la saisie du nb de lignes puis erreur 1004 définie par l'appli ou l'objet?
La 2ème 'classeur1' fonctionne bien sauf que le resultat est dans une cellule (au lieu d'un chiffre par col descendante), je vais devoir agrandir mes colonnes!!! mais elle fonctionne.

J'aii un probléme avec ma question 'TRI' à laquelle je n'ai pas recu de réponse, même en VBA, pouvez vous regarder?
MERCI
Bon WE
 
Bonsoir Pascal
Bonsoir le Forum,
Ta macro fonctionne bien et je m'en sers, ce que je t'ai répondu c'est que le résultat de la macro s'affiche dans une seule cellule au bas des données et non un résultat (chiffre)par cellule en descendant, mais ce n'est pas grave car j'élargis la colonne pour que tout le résultat s'affiche horizontalement.

Pour info, je joins une autre macro qui est différente et qui fonctionne aussi car je pense que c'est aussi le but d'un forum de partager.
Bon WE et encore merci.
JJ

For i = 1 To 12 'colonnes
som0 = 0
som1 = 0
For Each c In Range(Cells(1, i), (Cells(10, i)))
If c = 0 Then
som0 = som0 + 1
If som0 <= 1 Then
ActiveSheet.Range(Cells(1, i), (Cells(10, i))).End(xlDown).Offset(1, 0).Font.Bold = False
ActiveSheet.Range(Cells(1, i), (Cells(10, i))).End(xlDown).Offset(1, 0) = som0
Else
ActiveSheet.Range(Cells(1, i), (Cells(10, i))).End(xlDown).Offset(1, 0).Font.Bold = False
ActiveSheet.Range(Cells(1, i), (Cells(10, i))).End(xlDown) = som0
End If
som1 = 0
ElseIf c = 1 Then
som1 = som1 + 1
If som1 <= 1 Then
ActiveSheet.Range(Cells(1, i), (Cells(10, i))).End(xlDown).Offset(1, 0).Font.Bold = True
ActiveSheet.Range(Cells(1, i), (Cells(10, i))).End(xlDown).Offset(1, 0) = som1
Else
ActiveSheet.Range(Cells(1, i), (Cells(10, i))).End(xlDown).Font.Bold = True
ActiveSheet.Range(Cells(1, i), (Cells(10, i))).End(xlDown) = som1
End If
som0 = 0
End If
Next
Next
 
JJ écrit:
Bonjour, j'ai testé vos macros, j'ai un problème avec celle de Valbin: croix rouge et erreur apres la saisie du nb de lignes puis erreur 1004 définie par l'appli ou l'objet?
La 2ème 'classeur1' fonctionne bien sauf que le resultat est dans une cellule (au lieu d'un chiffre par col descendante), je vais devoir agrandir mes colonnes!!! mais elle fonctionne.

J'aii un probléme avec ma question 'TRI' à laquelle je n'ai pas recu de réponse, même en VBA, pouvez vous regarder?
MERCI
Bon WE

Bonsoir
La macro pose une question, ensuite affichage d'un message et il faut confirmer la valeur saisie (Croix rouge).
Par contre l'erreur 1004 ?

ci joint le fichier avec des essais et la macro corrigé

Bon W.E. [file name=valbin_20060212122057.zip size=14299]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/valbin_20060212122057.zip[/file]

Message édité par: jp14, à: 12/02/2006 12:20
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
19
Affichages
867
  • Question Question
Réponses
13
Affichages
435
Réponses
19
Affichages
760
R
  • Question Question
Réponses
3
Affichages
105
regis6460
R
Réponses
23
Affichages
676
Retour