OVH Cloud OVH Cloud

Macro pour compter les cellules saisies

5 réponses
Avatar
Michir
Bonjour à tous,
Soit une très grandes feuille Excel avec des cellules saisies (constantes),
de nombreuses formules et de nombreuses valeurs nulles.
Je souhaite compter dans une plage sélectionnée, toutes les cellules ayant
fait l'objet de saisies, donc en excluant les cellules comportant des
formules ou des valeurs nulles.
J'ai essayé d'écrire une macro sans succès. Quelqu'un peut-il me dépanner ?
Merci à tous et toutes

5 réponses

Avatar
jb
La macro ci dessous colorie et compte les cellules modifiées au fur et
à mesure de la saisie:

Ecrire dans l'événement Change de la feuille de calcul:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$K$1" Then ' compteur en K1
Target.Interior.ColorIndex = 3 ' colorie
Range("k1") = Range("k1") + 1 ' compte
End If
End Sub

On peut délimiter le champ d'application en vérifiant le no de ligne
et colonne de la cellule.

Cordialement JB
Avatar
Michir
Oui JB je te remercie de ta réponse, mais je souhaite compter des cellules
comportant des constantes
(donc à l'exclusion des formules et des zéros) dans une feuille déjà saisie.
Ceci à des fins statistiques.
La macro doit être accessible pour n'importe que classeur
Merci


jb wrote:
La macro ci dessous colorie et compte les cellules modifiées au fur et
à mesure de la saisie:

Ecrire dans l'événement Change de la feuille de calcul:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$K$1" Then ' compteur en K1
Target.Interior.ColorIndex = 3 ' colorie
Range("k1") = Range("k1") + 1 ' compte
End If
End Sub

On peut délimiter le champ d'application en vérifiant le no de ligne
et colonne de la cellule.

Cordialement JB


Avatar
michdenis
Bonjour Michir,

Essaie ceci :

2 petites procédures selon que tu veuilles dénombrer seulement les constantes "Texte" ou "Texte et nombre"

Tu sélectionnes une plage de cellules et tu lances une des macro

'---------------------------
Sub CompterLesConstantesTexte()

Dim Rg As Range
On Error Resume Next
If TypeName(Selection) = "Range" Then
Set Rg = Selection
If Selection.Cells.Count > 1 Then
MsgBox Rg.SpecialCells(xlCellTypeConstants, xlTextValues).Cells.Count _
& " cellules contiennent du texte."
If Err <> 0 Then
Err = 0
MsgBox "aucune constante dans cette plage."
End If
Else
MsgBox "Au moins 2 cellules doivent être sélectionnées."
End If
End If

End Sub
'---------------------------

Si tu veux dénombrer les cellules contenant du texte et des nombres, remplace cette ligne de code :

MsgBox Rg.SpecialCells(xlCellTypeConstants, xlTextValues).Cells.Count _
& " cellules contiennent du texte."

Par

MsgBox Rg.SpecialCells(xlCellTypeConstants, xlTextValues + xlNumbers).Cells.Count _
& " cellules contiennent soit du texte soit des nombres."


Salutations!


"Michir" a écrit dans le message de news: 43523828$0$7844$
Bonjour à tous,
Soit une très grandes feuille Excel avec des cellules saisies (constantes),
de nombreuses formules et de nombreuses valeurs nulles.
Je souhaite compter dans une plage sélectionnée, toutes les cellules ayant
fait l'objet de saisies, donc en excluant les cellules comportant des
formules ou des valeurs nulles.
J'ai essayé d'écrire une macro sans succès. Quelqu'un peut-il me dépanner ?
Merci à tous et toutes
Avatar
jb
Si tu veuxque la macro soit utilisable pour tout classeur, tu crée une
barre d'outils et tu affecte la macro à un bouton.
-Tu masque la feuille de calcul avec Fenêtre/Masquer
-Tu masque le code (propriétés/VbAProject - Clic droit)
-Tu sauvegarde le classeur (CompterConst.xls e.g.)

Sur un autre classeur, en cliquant sur le bouton de la barre d'outils,
ce classeur sera chargé mais ne sera visible.

Sub je_compte()
If Selection.Count < 1 Then
Cells.Select
End If
Selection.SpecialCells(xlCellTypeConstants, 1).Select
MsgBox Selection.Count
End Sub

Tu peux ainsi te faire une barre d'outils utilitaires utilisable de
tout classeur pour transformer une sélection en majuscule, nompropre,
trier les onglets, créer un sommaire,...

Cordialement JB
Avatar
Michir
Parfait JB,
Merci à toi
Michel

jb wrote:
Si tu veuxque la macro soit utilisable pour tout classeur, tu crée une
barre d'outils et tu affecte la macro à un bouton.
-Tu masque la feuille de calcul avec Fenêtre/Masquer
-Tu masque le code (propriétés/VbAProject - Clic droit)
-Tu sauvegarde le classeur (CompterConst.xls e.g.)

Sur un autre classeur, en cliquant sur le bouton de la barre d'outils,
ce classeur sera chargé mais ne sera visible.

Sub je_compte()
If Selection.Count < 1 Then
Cells.Select
End If
Selection.SpecialCells(xlCellTypeConstants, 1).Select
MsgBox Selection.Count
End Sub

Tu peux ainsi te faire une barre d'outils utilitaires utilisable de
tout classeur pour transformer une sélection en majuscule, nompropre,
trier les onglets, créer un sommaire,...

Cordialement JB