Macro: Detecter si une cellule est vide.HELP [Résolu]

aurel7687 24 Messages postés vendredi 27 juin 2003Date d'inscription 14 août 2009 Dernière intervention - 19 août 2004 à 11:30 - Dernière réponse : aurel7687 24 Messages postés vendredi 27 juin 2003Date d'inscription 14 août 2009 Dernière intervention
- 19 août 2004 à 14:59
Bonjour a tous!

Je voudrai savoir si quelqu'un pourrait m'aider!!!

Voila je voudrai détecter si une cellule est vide. Si elle est vide, ca copie une cellule dedans. Si elle est pas vide, que ca descende d'une ligne, que ca detecte si elle est vide. Si elle est vide ,ca copie.......

Pouvez vous m'aider car ca fait plusieurs jours que j'y suis et je ne trouve pas!!

Merci d'avance.
Aurel
Afficher la suite 

14 réponses

Meilleure réponse
Zigarn 106 Messages postés mardi 13 juillet 2004Date d'inscription 26 janvier 2005 Dernière intervention - 19 août 2004 à 14:21
3
Merci
Un simple

i = 177
While (Cells(i,3) <> 0)
  i = i + 1
Wend
' ici i correspond à la première case vide
If (i <= 229) then
  Cells(i,3) = Cells(6,51)
End If


ne suffirait-il pas, parce que les GoTo c'est pas beau !

Sinon pour le range, le C en chaine de caractères ("C") aurait peut-être été mieux.

-------------------------------------------------
Débutant ... mais pas pour longtemps !

Merci Zigarn 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

SofieV 20 Messages postés jeudi 29 juillet 2004Date d'inscription 2 septembre 2004 Dernière intervention - 19 août 2004 à 11:35
0
Merci
Por voir si une cellule est vide tu peux faire un test tout simple :

if range(colonne, ligne) ="" then
' tu copies ta cellule

'autrement tu va à la ligne suivante...

est-ce que ça te suffit?
SofieV 20 Messages postés jeudi 29 juillet 2004Date d'inscription 2 septembre 2004 Dernière intervention - 19 août 2004 à 11:43
0
Merci
petite correction :

if range(colonne & ligne).value =""
aurel7687 24 Messages postés vendredi 27 juin 2003Date d'inscription 14 août 2009 Dernière intervention - 19 août 2004 à 11:51
0
Merci
Heu, oui ca pourrait aller jpense mais comment lui dire "autrement tu vas a la ligne"?
Aurel
cs_Fife 73 Messages postés lundi 23 octobre 2000Date d'inscription 16 mars 2008 Dernière intervention - 19 août 2004 à 11:56
0
Merci
Voilà une ligne qui permet de détecter si la cellule est vide
ActiveSheet.Cells(ligne, colonne) = ""
Ensuite, tu peux faire une petite boucle For...Next pour passer à la cellule suivante.

Voilà un bout de code qui regarde dans la première colonne de la feuille active pour chacune des 10 premières lignes. Si la cellule est vide alors il recopie la cellule d'à côté (2eme colonne) et ensuite il passe à la suivante.

For MyRow = 1 To 10 If ActiveSheet.Cells(MyRow, 1) "" Then ActiveSheet.Cells(MyRow, 1) ActiveSheet.Cells(MyRow, 2)
Next

Bon courage !
cs_Fife 73 Messages postés lundi 23 octobre 2000Date d'inscription 16 mars 2008 Dernière intervention - 19 août 2004 à 11:57
0
Merci
houlà il y en a eu des messages entre temps !
SofieV 20 Messages postés jeudi 29 juillet 2004Date d'inscription 2 septembre 2004 Dernière intervention - 19 août 2004 à 11:59
0
Merci
pour faire TRES simple :

for i=1 to lignefin ' tu mets la valeuir de la dernière ligne

if range(colonne & i).value= "" then
'tu fais ta copie

next i

j'ai pas vérifié, mais ça doit être bon...tu fais une boucle sur tes nbre de lignes et pour chaque ligne tu teste le contenu de ta cellule : si elle est vide tu copies, sinon tu incrémente ton numéro de ligne (avec "next i " qui équivaut à i = i+1) et ainsi de suite jusqu'à ta ligne finale
aurel7687 24 Messages postés vendredi 27 juin 2003Date d'inscription 14 août 2009 Dernière intervention - 19 août 2004 à 12:14
0
Merci
Bon voila mon code, ya une erreur mais laquelle?

For i = 177 To 229
If Range(C & i).Value = "" Then
Range("AY6").Select
Selection.Copy
End If

Next i
End sub

=> En fait mes cellules ou il faut que ce fasse le test sont les cellules de C177 à C229.

Aurel
cs_Fife 73 Messages postés lundi 23 octobre 2000Date d'inscription 16 mars 2008 Dernière intervention - 19 août 2004 à 13:02
0
Merci
J'ai testé ça :

For i = 177 To 229
If Cells(i, 3) = "" Then
Cells(i, 3) = Cells(6,51)
End If

Next i
aurel7687 24 Messages postés vendredi 27 juin 2003Date d'inscription 14 août 2009 Dernière intervention - 19 août 2004 à 13:32
0
Merci
Bon ca marche tres bien. Sauf qu'il faut faut a mon avis rajouté une autre condition, pour pas que ca le copie partout ou c'est vide.
En fait, ce qui se passe avec ce code la, c'est que ca detecte bien les cellules pleines, mais que toutes les cellules restantes vides sont rempli! Alors que moi je voudrai que ca copie la cellule AY6 dans la premiere cellule vide entre C177 et C229!
Donc je pense qu'il faut rajouter une condition!

Désolé, mais je m'y connais pas tres bien, donc si vous pouviez m'aider encore une fois!!!!

Merci d'avance!!
Aurel
SofieV 20 Messages postés jeudi 29 juillet 2004Date d'inscription 2 septembre 2004 Dernière intervention - 19 août 2004 à 13:59
0
Merci
si tu veux uniquement remplir la première cellule vide, tu peut faire quelque chose comme ça :

For i = 177 To 229
If Cells(i, 3) = "" Then
Cells(i, 3) = Cells(6,51)
goto ligne 00
End If

Next i

ligne 00:

'suite de ton programme....

comme ça dès que ta première cellule vide est remplie, tu va directement à la ligne 00 et tu sort de ta boucle...
SofieV 20 Messages postés jeudi 29 juillet 2004Date d'inscription 2 septembre 2004 Dernière intervention - 19 août 2004 à 14:01
0
Merci
si ton problème est résolu, coche bien "accepter la réponse"...
Zigarn 106 Messages postés mardi 13 juillet 2004Date d'inscription 26 janvier 2005 Dernière intervention - 19 août 2004 à 14:24
0
Merci
Oups,
<> ""
(et pas 0, tout le monde aura compris)

-------------------------------------------------
Débutant ... mais pas pour longtemps !
aurel7687 24 Messages postés vendredi 27 juin 2003Date d'inscription 14 août 2009 Dernière intervention - 19 août 2004 à 14:59
0
Merci
Ok! Merci! Ca marche maintenant! Merci!
Bon courage!
Aurel

Vous n'êtes pas encore membre ?

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

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 et codes sources.

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