Menu

[VBA] Détection cellule vide [Résolu/Fermé]

Messages postés
1569
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
- - Dernière réponse :  narval - 24 mars 2010 à 17:04
Bonjour,

Je suis certain que c'est un truc tout bête mais je bloc...

Jaimerais faire une boucle qui compte le nombre de ligne (tableau excel) et qui, arrivé à une case vide, donc la dernière ligne met dans une variable le nombre de lignes
Merci pour ce ptit coup de pouce d'avance.
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
109
59
Merci
' Selectionne la première cellule du tableau
Range("A1").Select

' Boucle tant que pas vide
Do While Not (IsEmpty(ActiveCell))
    NbLigne = NbLigne + 1
    Selection.Offset(1, 0).Select
Loop

Dire « Merci » 59

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 40093 internautes nous ont dit merci ce mois-ci

Messages postés
1569
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
240
11
Merci
Merci beaucoup seulement maintenant je veux écrire dans chacune des cellules jusqu'à NbLigne-1 dans la colonne en E une formule il me faut donc utiliser NbLigne mais je ne peux pas dans
[Selection.AutoFill Destination:=Range("E2:E37"), Type:=xlFillDefault] car à la place de E37 je n'arrive pas à placer NbLigne
Désolé je ne saisis pas encore très très bien le VBA :) je suis habitué au C++ et même le C++ j'ai du mal :D
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
109 -
Pas besoin de compter le nombre de ligne alors

' Selectionne la première cellule du tableau
Range("A1").Select

' Boucle tant que pas vide
Do While Not (IsEmpty(ActiveCell))
    ' Inscrit une formule dans la cellule ayant pour référence
    ' la ligne active et la colonne 5 (colonne E)
    Cells(ActiveCell.Row, 5).Formula = "=NOW()"
    ' Passe à la ligne suivante
    Selection.Offset(1, 0).Select
Loop

zavenger
Messages postés
818
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
130 > onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
-
Si je peux me permettre le fait que tu fasses un select a chaue fois ralentit enormemement la macro. Un truc du style

ii = 1
Do While Not (IsEmpty(ActiveSheet.Cells(ii,1)))
' Inscrit une formule dans la cellule ayant pour référence
' la ligne active et la colonne 5 (colonne E)
ActiveSheet.Cells(ii, 5).Formula = "=NOW()"
' Passe à la ligne suivante
ii = ii +1
Loop
4
Merci
dans excell
je voudrais mettre une information "texte ou nombre "dans une cellule à condition qu'une autre cellule soit non vide donc qu'il y est un texte ou un nombre
4
Merci
Range("A65536").End(xlUp).Offset(1, 0).Row
te donne la dernière ligne d'un tableau en colonne A

sinon utilise IsEmpty (range("A1")) avec une boucle
Messages postés
1569
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
240
3
Merci
Merci bien ça marche nikel maintenant je vais le décortiquer pour le comprendre et c'est tout bon vous n'êtes pas à l'abrit d'autres demandes hihihi merci encore bix.







Solution :

' Selectionne la première cellule du tableau
Range("A1").Select

' Boucle tant que pas vide
Do While Not (IsEmpty(ActiveCell))
' Inscrit une formule dans la cellule ayant pour référence
' la ligne active et la colonne 5 (colonne E)
Cells(ActiveCell.Row, 5).Formula = "=MID(RC[1],VALUE(SEARCH(""("",RC[1]))+1,VALUE(SEARCH("")"",RC[1]))-VALUE(SEARCH(""("",RC[1]))-1)"
' Passe à la ligne suivante
Selection.Offset(1, 0).Select
Loop