Chercher dans la colonne la prochaine celulle non vide

K

Karim

Guest
Bonjour,

J'ai un fichier avec une cellule non vide, plusieurs cellules vides puis a nouveau une cellule non vide.
Ce que je veux faire, c'est connaitre l'adresse de la cellue non vide qui se trouve après les cellules vides.

A1=200
A2=
A3=
A4=
A5=150

sacahnt que le nombre decellules vides entre deux cellules pleines n'est pas constant, ça peut etre une fois 3 cellules vides, une fois 4...
J'ai essayé de faire ça:

Sub test()

Dim art As Range, ver As Integer, art2 As Range

Set art = Range("a2")
ver = 0

Do Until art.Offset(ver) <> ""
ver = ver + 1
Set art2 = art.Offset(1)
Loop

MsgBox art2

End Sub

Mais avec ça; la variable art2 est tjs vide alors qu'elle devrait avoir 150 comme valeur!

Si vous avez des idées, vous me sauvez la vie!
Merci d'avance!
 
M

Michel_M

Guest
Bonjour Karim, Jean-marie

une macro qui te donne toutes les cellules non vides de la colonne "A";
avec des fonctions texte, on trouve la 2° référence (j'ai la flemme...)

Sub nonvide()

Dim var As String

var = Range("A1").SpecialCells(xlCellTypeConstants, 23).Address

MsgBox var
End Sub

Il y a d'autres variantes encore que ces 2 solutions (JM et MM) avec . par exemple .find

A+

Michel
 
K

Karim

Guest
merci de vos réponses mais cela ne résoud pas mon pb...
En effet, avac vos méthodes, il faut que je connaisse la plage dans laquelle chercher, et je ne la connnais pas, elle change à chaque fois, c'est pour ça que j'ai essayé avec une boucle.
Et la méthode Michel_M, elle ne va pas non plus car elle me donne toute les adresses des cellules non vides, et moi je ne veux que celle qui suit...
Merci d'avance
 
C

CHti160

Guest
re "salut"
bonsoir "Michel_M"
c'est vraiment pas évident ,sans pièce jointe pour expliquer un peu
Car on croit avoir compri et on est à coté.Donc joindre une explication par fichier c'est mieux ;0)
A+++
Jean Marie
 
H

Hervé

Guest
bonsoir tout le monde


une idée :

Public Sub karim()
Dim cel As Range
For Each cel In Range("a2:a500")
If cel.Value <> "" And cel.Offset(-1, 0) = "" Then
MsgBox cel.Address
End If
Next cel
End Sub


donne l'addresse d'une cellule si la cellule au dessus est vide (laissé a1 vide).

salut
Hervé
 
K

Karim

Guest
Bonjour,

Voici comment j'ai fait, c'est tt simple en fait!:

----------
10









125
-----------

Sub TEST()

Dim A As Range, c As Range
Dim B As Integer

Set A = Range("A1")
B = 1
While A.Offset(B) = ""

B = B + 1
Set c = A.Offset(B)

Wend
MsgBox c
End Sub
 

Pièces jointes

  • test.zip
    6.2 KB · Affichages: 31
  • test.zip
    6.2 KB · Affichages: 33
  • test.zip
    6.2 KB · Affichages: 35

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 893
Membres
103 982
dernier inscrit
krakencolas