VBA, compter le nombre de ligne non masquée
Résolu
rhalimi13
Messages postés
23
Statut
Membre
-
rhalimi13 Messages postés 23 Statut Membre -
rhalimi13 Messages postés 23 Statut Membre -
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
27 réponses
- 1
- 2
Suivant
-
bonjour
Comme ceci cela devrait mieux fonctionnerPrivate 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 -
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 -
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 !
-
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 -
bonjour
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éservationDim 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 -
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. -
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 -
bonjour
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 ! -
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 -
bonjour
Avec un autre type de boucle peut-êtrePrivate 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 -
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.=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 -
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 -
bonjour
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 -
-
-
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 -
si tu as besoin de plus d'explication je suis connecté, merrci
parceque le code que m'as posté me semble tres correct, mais pourquoi il ne reponds pas?
- 1
- 2
Suivant