VBA, compter le nombre de ligne non masquée
Résolu
rhalimi13
Messages postés
23
Date d'inscription
Statut
Membre
Dernière intervention
-
rhalimi13 Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
rhalimi13 Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrais compter le nombre de ligne non masquée et ensuite afficher le resultat
MERCIIIIIIIIIIIIIIIIIIIII
Private Sub CommandButton3_Click()
Dim R As Long
Dim c As Integer
With Application.WorksheetFunction
If c.EntireRow.hiden = False Then
R = .CountA(Range("A3:A100"))
MsgBox ("il y a " & R & " cellules non vides dans la colonne A")
End With
End Sub
Je voudrais compter le nombre de ligne non masquée et ensuite afficher le resultat
MERCIIIIIIIIIIIIIIIIIIIII
Private Sub CommandButton3_Click()
Dim R As Long
Dim c As Integer
With Application.WorksheetFunction
If c.EntireRow.hiden = False Then
R = .CountA(Range("A3:A100"))
MsgBox ("il y a " & R & " cellules non vides dans la colonne A")
End With
End Sub
A voir également:
- Vba compter le nombre de ligne non vide
- Partage de photos en ligne - Guide
- Supprimer page word vide - Guide
- Excel compter cellule couleur sans vba - Guide
- Nombre de jours entre deux dates excel - Guide
- Mètre en ligne - Guide
27 réponses
bonjour
Comme ceci cela devrait mieux fonctionner
Ce sont les lignes visibles qui sont comptées et pas les cellules non vides..
Comme ceci cela devrait mieux fonctionner
Private Sub CommandButton3_Click() Dim R As Double Dim l As Double For l = 1 To Cells(65536, 1).End(xlUp).Row If Not Rows(l).Hidden Then R = R + 1 Next l MsgBox ("il y a " & R & " lignes visibles dans la colonne A") End Sub
Ce sont les lignes visibles qui sont comptées et pas les cellules non vides..
merci bcp de ta solution,
je vais la travailler parceque je suis débutant en vba
MERCIIIIIIIIIII ENCOREEEE
je vais la travailler parceque je suis débutant en vba
MERCIIIIIIIIIII ENCOREEEE
Franchement ta solution marche mieux que le programme que m'a été remis sur un forum
le tiens ne me compte que les visible, ca c excellent!!
si j'ai un autre pb, tu pourras m'aider?
thanks
le tiens ne me compte que les visible, ca c excellent!!
si j'ai un autre pb, tu pourras m'aider?
thanks
bonjour
Merci de ton message et c'est tout de même normal de fournir du code qui correspond au besoin ?
si j'ai un autre pb, tu pourras m'aider?
Pas de problème mais bientôt c'est toi qui va aider les autres !
Merci de ton message et c'est tout de même normal de fournir du code qui correspond au besoin ?
si j'ai un autre pb, tu pourras m'aider?
Pas de problème mais bientôt c'est toi qui va aider les autres !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
je reviens vers toi, esperant ne pas trop t'en demander
voila j'ai un souci avec inputBox, lorsque je click sur annuler ou si je ne saisi rien a inputbox, VBA active le debogueur,
je souhaiterais qu'il ferme la inputbox si j'annule,
tu peux voir, MEEEERCI
Private Sub CommandButton2_Click()
Range("a1:I30").Interior.ColorIndex = xlNone
Dim msg As Double
msg = InputBox("quelle est la moyenne glissante? ")
'If msg = "" Then Exit Sub
'Dim msg
'msg = InputBox
'If msg = vbCancel Then
'Exit Sub
'End If
Dim c As Range
For Each c In ActiveSheet.Range("a1:I30")
If c < msg And c <> "" Then
c.Interior.Color = RGB(168, 168, 168)
End If
Next
End Sub
je reviens vers toi, esperant ne pas trop t'en demander
voila j'ai un souci avec inputBox, lorsque je click sur annuler ou si je ne saisi rien a inputbox, VBA active le debogueur,
je souhaiterais qu'il ferme la inputbox si j'annule,
tu peux voir, MEEEERCI
Private Sub CommandButton2_Click()
Range("a1:I30").Interior.ColorIndex = xlNone
Dim msg As Double
msg = InputBox("quelle est la moyenne glissante? ")
'If msg = "" Then Exit Sub
'Dim msg
'msg = InputBox
'If msg = vbCancel Then
'Exit Sub
'End If
Dim c As Range
For Each c In ActiveSheet.Range("a1:I30")
If c < msg And c <> "" Then
c.Interior.Color = RGB(168, 168, 168)
End If
Next
End Sub
bonjour
Je te propose de gérer ainsi l'annulation :
Tu peux aussi le faire en changeant ta réservation
Je te propose de gérer ainsi l'annulation :
On Error Resume Next ' si erreur on passe à la ligne suivante msg = InputBox("quelle est la moyenne glissante? ") If msg = 0 Then Exit Sub ' si "Annuler" est utilisé on sort de la macro On Error GoTo 0 ' le contrôle erreur est remis en fonction
Tu peux aussi le faire en changeant ta réservation
Dim msg As Variant msg = InputBox("quelle est la moyenne glissante? ") If msg = "" Then Exit Sub ' si "Annuler" est utilisé on sort de la macro
re
j'ai testé ce que tu m'a donné, mais je rencontre tjs des soucis, soit il lance le débeugage ou il m'affiche 2 fois la inputbox
mon exercice est de colorier des cellules inf a x%
merci de ton aide
j'ai testé ce que tu m'a donné, mais je rencontre tjs des soucis, soit il lance le débeugage ou il m'affiche 2 fois la inputbox
mon exercice est de colorier des cellules inf a x%
merci de ton aide
bonjour
Je t'ai fourni 2 possibilités : tu choisis l'une ou l'autre, pas les deux.
Le plus simple est de passer "msg" en variant.
Je t'ai fourni 2 possibilités : tu choisis l'une ou l'autre, pas les deux.
Le plus simple est de passer "msg" en variant.
re bonjour
j'ai mis msg comme variant, au niveau de la inputbox ca marche nickel, par contre il ne me respecte plus la condition et me colories toutes les cellules, il cherche pas a comprendre,
merci
j'ai mis msg comme variant, au niveau de la inputbox ca marche nickel, par contre il ne me respecte plus la condition et me colories toutes les cellules, il cherche pas a comprendre,
merci
bonjour
Avec ceci, cela devrait mieux fonctionner.
Lorsque tu saisis une valeur dans inputbox, c'est du texte et donc il faut le traduire en numérique pour comparer.
Dans les formules excel le fait parfois mais pas en VBA.
Il est plus prudent aussi de décolorer si l'on ne rempli pas la condition.
Avec ceci, cela devrait mieux fonctionner.
For Each c In ActiveSheet.Range("a1:I30") If c < Val(msg) And c <> "" Then c.Interior.Color = RGB(168, 168, 168) Else c.Interior.Color = xlNone End If Next
Lorsque tu saisis une valeur dans inputbox, c'est du texte et donc il faut le traduire en numérique pour comparer.
Dans les formules excel le fait parfois mais pas en VBA.
Il est plus prudent aussi de décolorer si l'on ne rempli pas la condition.
Bonjour, je vien de faire le test avec
Val( msg) et On Error Resume Next, CA MARCHE NICKEL !! PERFECT
donc 'val', comme tu m'a expliqué, traduit le texte en numérique (vue que c de l'inputBox, c'est cela si je ne me trompe pas)
et le 'On Error Resume Next', permet de passer à la ligne suivante si l'utilisateur se trompe et saisie du Texte ( par erreur de frappe)
par contre pas besoin du else, sinon dans la boucle il me colorie toute la plage de travail apres avoir réalisé la condition
autrement on m'a proposé ca;If ((CDec(c.Value) < CDec(msg)) And (CStr(c.Value) <> "")) Then, je ne sais commt ce que ca veut dire et en faisant du copie coller, ca ne marché pas
Je n'ai plus qu'a te remercier et te dire à bientôt
Bonne journée !
Val( msg) et On Error Resume Next, CA MARCHE NICKEL !! PERFECT
donc 'val', comme tu m'a expliqué, traduit le texte en numérique (vue que c de l'inputBox, c'est cela si je ne me trompe pas)
et le 'On Error Resume Next', permet de passer à la ligne suivante si l'utilisateur se trompe et saisie du Texte ( par erreur de frappe)
par contre pas besoin du else, sinon dans la boucle il me colorie toute la plage de travail apres avoir réalisé la condition
autrement on m'a proposé ca;If ((CDec(c.Value) < CDec(msg)) And (CStr(c.Value) <> "")) Then, je ne sais commt ce que ca veut dire et en faisant du copie coller, ca ne marché pas
Je n'ai plus qu'a te remercier et te dire à bientôt
Bonne journée !
bonjour, encore moi
j'ai ce code qui fonctionne, mais je souhaiterais lui dire d'aller de 2 jusqu'a la fin du tableau, sans définir la dernierre cellule (ici=15)
comment je fais?
Private Sub CommandButton1_Click()
Dim var As Integer
var = 2
For var = 2 To 15
If Cells(var, 2) > 100 Then
Range(Cells(var, 1), Cells(var, 2)).Font.Bold = True
End If
Next
End Sub
j'ai ce code qui fonctionne, mais je souhaiterais lui dire d'aller de 2 jusqu'a la fin du tableau, sans définir la dernierre cellule (ici=15)
comment je fais?
Private Sub CommandButton1_Click()
Dim var As Integer
var = 2
For var = 2 To 15
If Cells(var, 2) > 100 Then
Range(Cells(var, 1), Cells(var, 2)).Font.Bold = True
End If
Next
End Sub
bonjour
Avec un autre type de boucle peut-être
Tu fais progresser ton indice ligne et tu t'arrêtes si la cellule est vide : à adapter avec ton tableau !
Avec un autre type de boucle peut-être
Private Sub CommandButton1_Click() Dim var As Integer var = 2 Do While Cells(var, 1) <> "" If Cells(var, 2) > 100 Then Range(Cells(var, 1), Cells(var, 2)).Font.Bold = True End If var = var + 1 Loop End Sub
Tu fais progresser ton indice ligne et tu t'arrêtes si la cellule est vide : à adapter avec ton tableau !
salut mon ami
de retour
je voudrais sil te plais
convertir une date (jj/mm/année) en semaine correspondant
merci
de retour
je voudrais sil te plais
convertir une date (jj/mm/année) en semaine correspondant
merci
bonjour
Avec l'année en A1, cette formule est plus efficace que la fonction NO.SEMAINE qui n'est pas fiable en Europe du moins.
Avec l'année en A1, cette formule est plus efficace que la fonction NO.SEMAINE qui n'est pas fiable en Europe du moins.
=ENT(MOD(ENT((A1-2)/7)+0,6;52+5/28))+1
Bonjour,
eh bien merci merci et Merci !!
parceque j'ai passé toute la soirée hier , de 17h à 23h (bien sur pas en continue) et je n'ai rien trouvé ds google
bien !!
est ce que tu peux me dire comment tu l'as trouvé que je puisse améliorer mes connaissance en info;
merci encore
etr passe une bonne journée!
a bientôt
eh bien merci merci et Merci !!
parceque j'ai passé toute la soirée hier , de 17h à 23h (bien sur pas en continue) et je n'ai rien trouvé ds google
bien !!
est ce que tu peux me dire comment tu l'as trouvé que je puisse améliorer mes connaissance en info;
merci encore
etr passe une bonne journée!
a bientôt
bonjour,
tu peux m'aider sil te plais
j'aurais souhaiter colorier les cellules suivant le contenu de la cellule dans la colonne b
ma plage de donnée est : "c2;l27", et mes condition sont sur la collone B
j'ai realisé un code mais il ne marche pas
voici:
Private Sub CommandButton1_Click()
Dim c As Range
Dim var As Integer
var = 2
For Each c In ActiveSheet.Range("c2:l27")
If c <> "" And Cells(var, 2) = mp Then
c.Interior.ColorIndex = 4
End If
var = var + 1
Next
If c <> "" And Cells(var, 2) = mc Then
c.Interior.ColorIndex = 3
End If
var = var + 1
If c <> "" And Cells(var, 2) = df Then
c.Interior.ColorIndex = 1
End If
var = var + 1
End Sub
tu peux m'aider sil te plais
j'aurais souhaiter colorier les cellules suivant le contenu de la cellule dans la colonne b
ma plage de donnée est : "c2;l27", et mes condition sont sur la collone B
j'ai realisé un code mais il ne marche pas
voici:
Private Sub CommandButton1_Click()
Dim c As Range
Dim var As Integer
var = 2
For Each c In ActiveSheet.Range("c2:l27")
If c <> "" And Cells(var, 2) = mp Then
c.Interior.ColorIndex = 4
End If
var = var + 1
Next
If c <> "" And Cells(var, 2) = mc Then
c.Interior.ColorIndex = 3
End If
var = var + 1
If c <> "" And Cells(var, 2) = df Then
c.Interior.ColorIndex = 1
End If
var = var + 1
End Sub
bonjour
Si j'ai compris...
Si j'ai compris...
Private Sub CommandButton1_Click() Dim c As Range Dim var As Integer var = 2 For Each c In ActiveSheet.Range("c2:l27") If c <> "" And Cells(c.row, var) = mp Then c.Interior.ColorIndex = 4 End If Next If c <> "" And Cells(c.row, var) = mc Then c.Interior.ColorIndex = 3 End If If c <> "" And Cells(c.row, var) = df Then c.Interior.ColorIndex = 1 End If End Sub
salut
Ouuuuf, Ouuuf Ouuuf j'ai enfin trouver !!!!!!!!
Eh bien tout simplement DANS le code que tu m'a retouché, IL FALLAIT simplement que je METTE: mp, mc, df entre guillemets:
If c <> "" And Cells(c.Row, var) = "mp" Then
If c <> "" And Cells(c.Row, var) = "mc" Then
If c <> "" And Cells(c.Row, var) = "df" Then
A mon avis , tu les avais oublier, lol
UNNNNN TRESSS GRAAAAN MERCCCI A TOI
une tres bonne journée à toi et à bientôt
Ouuuuf, Ouuuf Ouuuf j'ai enfin trouver !!!!!!!!
Eh bien tout simplement DANS le code que tu m'a retouché, IL FALLAIT simplement que je METTE: mp, mc, df entre guillemets:
If c <> "" And Cells(c.Row, var) = "mp" Then
If c <> "" And Cells(c.Row, var) = "mc" Then
If c <> "" And Cells(c.Row, var) = "df" Then
A mon avis , tu les avais oublier, lol
UNNNNN TRESSS GRAAAAN MERCCCI A TOI
une tres bonne journée à toi et à bientôt
franchement, tu m'as repondus, je suis tt content!!
oui c ca, en fait je veux colorier mes cellules dans la plage ( Range("c2:l27") ) suivant le contenu des cellules de la colonne b2
j'ai recupéré ton code mais ca bloque,
sil te plais aide moi, merrrrrrcciciiiiii
comment je peux t'envoyer le fichier excel autrement
oui c ca, en fait je veux colorier mes cellules dans la plage ( Range("c2:l27") ) suivant le contenu des cellules de la colonne b2
j'ai recupéré ton code mais ca bloque,
sil te plais aide moi, merrrrrrcciciiiiii
comment je peux t'envoyer le fichier excel autrement