VBA, compter le nombre de ligne non masquée
Résolu/Fermé
rhalimi13
Messages postés
23
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
3 mars 2008
-
4 janv. 2008 à 09:26
rhalimi13 Messages postés 23 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 3 mars 2008 - 3 mars 2008 à 15:26
rhalimi13 Messages postés 23 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 3 mars 2008 - 3 mars 2008 à 15:26
A voir également:
- Vba compter le nombre de ligne
- Site de vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
- Aller à la ligne excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Apparaitre hors ligne instagram - Guide
27 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 709
4 janv. 2008 à 10:03
4 janv. 2008 à 10:03
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..
rhalimi13
Messages postés
23
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
3 mars 2008
1
4 janv. 2008 à 16:29
4 janv. 2008 à 16:29
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
rhalimi13
Messages postés
23
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
3 mars 2008
1
4 janv. 2008 à 16:43
4 janv. 2008 à 16:43
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
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 709
4 janv. 2008 à 18:10
4 janv. 2008 à 18:10
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
rhalimi13
Messages postés
23
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
3 mars 2008
1
7 janv. 2008 à 11:07
7 janv. 2008 à 11:07
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
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 709
7 janv. 2008 à 11:25
7 janv. 2008 à 11:25
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
rhalimi13
Messages postés
23
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
3 mars 2008
1
8 janv. 2008 à 09:41
8 janv. 2008 à 09:41
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
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 709
8 janv. 2008 à 10:23
8 janv. 2008 à 10:23
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.
rhalimi13
Messages postés
23
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
3 mars 2008
1
8 janv. 2008 à 16:12
8 janv. 2008 à 16:12
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
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 709
8 janv. 2008 à 17:31
8 janv. 2008 à 17:31
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.
rhalimi13
Messages postés
23
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
3 mars 2008
1
9 janv. 2008 à 08:51
9 janv. 2008 à 08:51
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 !
rhalimi13
Messages postés
23
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
3 mars 2008
1
10 janv. 2008 à 14:47
10 janv. 2008 à 14:47
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
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 709
10 janv. 2008 à 17:58
10 janv. 2008 à 17:58
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 !
rhalimi13
Messages postés
23
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
3 mars 2008
1
7 févr. 2008 à 22:04
7 févr. 2008 à 22:04
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
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 709
7 févr. 2008 à 23:55
7 févr. 2008 à 23:55
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
rhalimi13
Messages postés
23
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
3 mars 2008
1
8 févr. 2008 à 09:02
8 févr. 2008 à 09:02
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
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 709
12 févr. 2008 à 10:19
12 févr. 2008 à 10:19
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
rhalimi71
Messages postés
6
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 février 2008
12 févr. 2008 à 10:52
12 févr. 2008 à 10:52
re
lorsque j'execute la macro;
il m'affiche un message erreur: variable d'objet ou variable de bloc with non définie
lorsque j'execute la macro;
il m'affiche un message erreur: variable d'objet ou variable de bloc with non définie
rhalimi71
Messages postés
6
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 février 2008
12 févr. 2008 à 11:25
12 févr. 2008 à 11:25
re
je viens de tester ton code corrigé, eh bien ca marche qd je met des chiffres a la place de mp, mc et md, mais pourquoi il ne prnds pas du texte??
merci
je viens de tester ton code corrigé, eh bien ca marche qd je met des chiffres a la place de mp, mc et md, mais pourquoi il ne prnds pas du texte??
merci
rhalimi71
Messages postés
6
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 février 2008
12 févr. 2008 à 12:43
12 févr. 2008 à 12:43
de retour;
ton code fonctionne parfaitement si a la place de "mp", "mc", et "df" je met du chiffre: 1,2...;
mais moi c du texte malheuresement;
si t'as une solution à mon probleme, merci d'avance;
a bientôt
ton code fonctionne parfaitement si a la place de "mp", "mc", et "df" je met du chiffre: 1,2...;
mais moi c du texte malheuresement;
si t'as une solution à mon probleme, merci d'avance;
a bientôt
rhalimi71
Messages postés
6
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 février 2008
12 févr. 2008 à 12:54
12 févr. 2008 à 12:54
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
rhalimi71
Messages postés
6
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 février 2008
12 févr. 2008 à 16:26
12 févr. 2008 à 16:26
bonjour,
j'ai noté !
mon savoir s'accroit avec toi en tt cas !
mille fois merci de ton aide
PS: si tu n'est pas connecté, est ce possible de joindre by mail?
à bientôt
j'ai noté !
mon savoir s'accroit avec toi en tt cas !
mille fois merci de ton aide
PS: si tu n'est pas connecté, est ce possible de joindre by mail?
à 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
rhalimi71
Messages postés
6
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
12 février 2008
12 févr. 2008 à 10:47
12 févr. 2008 à 10:47
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?
parceque le code que m'as posté me semble tres correct, mais pourquoi il ne reponds pas?