Rechercher : dans
Par :

[VBA] Détection cellule vide

Dernière réponse le 13 jun 2008 à 08:23:37 Doudou95, le 28 mai 2008 à 09:25:10 
 Signaler ce message aux modérateurs

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.

Configuration: Windows XP
Internet Explorer 8.0

Meilleures réponses pour « [VBA] Détection cellule vide » dans :
[VBA] Détection de modification de cellule VoirExemple pour une MFC avec plus de 3 conditions. Private Sub Worksheet_Change(ByVal Target As Range) Dim Cel As Range For Each Cel In Target 'Adapter la/les plages. If Not Intersect(Cel, Range("B1:B30,D1:D30")) Is Nothing...
Tableur - La sélection des cellules VoirSélection de cellules Le tableur est un formidable outil pour manipuler des données. Ainsi, pour pouvoir manipuler les données il est nécessaire de disposer d'outils permettant de sélectionner rapidement toutes les cellules dont on a...

1

onesdf, le 28 mai 2008 à 09:29:36

' 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

Répondre à onesdf

2

Doudou95, le 28 mai 2008 à 09:52:01

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

Répondre à Doudou95

3

onesdf, le 28 mai 2008 à 09:58:45

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

Répondre à onesdf

4

zavenger, le 28 mai 2008 à 10:05:05
  • +1

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

Répondre à zavenger

5

Doudou95, le 28 mai 2008 à 10:11:27

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

Répondre à Doudou95

6

 flo, le 13 jun 2008 à 08:23:37

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

Répondre à flo