Signaler

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

Posez votre question Doudou95 1568Messages postés jeudi 19 juillet 2007Date d'inscription 29 juin 2015 Dernière intervention - Dernière réponse le 24 mars 2010 à 17:04 par narval
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.
Utile
+58
plus moins
' 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
Cette réponse vous a-t-elle aidé ?  
Utile
+12
plus moins
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 375Messages 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 818Messages postés vendredi 29 février 2008Date d'inscription 20 avril 2012 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
Utile
+4
plus moins
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
Utile
+4
plus moins
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
Utile
+2
plus moins
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

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !