Menu

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

Doudou95 1568 Messages postés jeudi 19 juillet 2007Date d'inscription 29 juin 2015 Dernière intervention - 28 mai 2008 à 09:25 - 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 

7 réponses

Meilleure réponse
onesdf 375 Messages postés mercredi 21 mai 2008Date d'inscription 17 octobre 2008 Dernière intervention - 28 mai 2008 à 09:29
58
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

Merci onesdf 58

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 22752 internautes ce mois-ci

Doudou95 1568 Messages postés jeudi 19 juillet 2007Date d'inscription 29 juin 2015 Dernière intervention - 28 mai 2008 à 09:52
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 375 Messages postés mercredi 21 mai 2008Date d'inscription 17 octobre 2008 Dernière intervention - 28 mai 2008 à 09:58
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 818 Messages postés vendredi 29 février 2008Date d'inscription 20 avril 2012 Dernière intervention > onesdf 375 Messages postés mercredi 21 mai 2008Date d'inscription 17 octobre 2008 Dernière intervention - 28 mai 2008 à 10:05
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
Doudou95 1568 Messages postés jeudi 19 juillet 2007Date d'inscription 29 juin 2015 Dernière intervention - 28 mai 2008 à 10:11
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