Petite aide macro svp !

yojema

XLDnaute Occasionnel
Bonsoir le forum

Je cherche a selectionner ,dans une macro ,dans une colonne la première cellule

ayant une valeur différente de zéro

ci dessous un exemple de tableau je selectionne la colonne D et la la macro dois selectionner la cells D5

----- A -- B -- C -- D

1 -- dd -- ii -- vv -- 0
2 -- dd -- ii -- vv -- 0
3 -- dd -- ii -- vv -- 0
4 -- dd -- ii -- vv -- 0
5 -- dd -- ii -- vv -- 18

en rouge la cellule a atteindre (les tirets sont la jute pour la mise en forme c est censer representer le début d une feuille de calcul )

ci dessous ce code m' a permis d atteindre le 1er 0

Selection.Find(What:="0", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Select

et j' arrive pas à le faire touner pour atteindre la première valeur différente de zero
j en ai besoin pour determiner a partir de quel n° de ligne je dois faire disparaitre des donner puisque celle ayant un résultat diferente de 0 je dois les enlever pour épurer mes données bref ça c' est un autre histoire

merci pour votre aide
a+
 

coco_lapin

XLDnaute Impliqué
Re : Petite aide macro svp !

Bonsoir yojema et le forum,

Ceci devrait marcher:
for i=1 to 10
if cells(i,4)<>0 then
Var=i
msgbox("Ligne trouvée = " & i)
end if
next i

Ensuite je ne vois pas trop ce que tu veux faire.
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Petite aide macro svp !

bonsoir à tous

Dim R As Range
For Each R In Range("D1 : D5")
If Val(R) <> 0 Then MsgBox "Lig " & R.Row & " Col " & R.Column & vblf & R.Value: Exit Sub
Next

EDIT

pas vu ! pas rafraichi ! salut coco lapin
 
Dernière édition:

yojema

XLDnaute Occasionnel
Re : Petite aide macro svp !

Bonsoir yojema et le forum,

Ceci devrait marcher:
for i=1 to 10
if cells(i,4)<>0 then
Var=i
msgbox("Ligne trouvée = " & i)
end if
next i

Ensuite je ne vois pas trop ce que tu veux faire.

Merci Coco lapin

Flute a mal poser les Questions celle la c est pour moi !

a la fin j aurai du préciser autrement que par une boucle car ça je sais

faire comme ceci par exemple :

for i=1 to 10
if cells(i,4)<>0 then
cells(i,4).select
Var=i
msgbox("Ligne trouvée = " & i)
i=10
end if
next i
ou plus certainement

for i=1 to 10
if cells(i,4)<>0 then
goto 10
end if
next i
10
comme ça i garde la valeur que je cherche à mémoriser dans le cadre

de ma macro !

merci tout de meme
a+
 

coco_lapin

XLDnaute Impliqué
Re : Petite aide macro svp !

en utilisant exit for tu sort de la boucle lorsque la ligne est trouvée, donc:

for i=1 to 10
if cells(i,4)<>0 then
Var=i
msgbox("Ligne trouvée = " & i)
exit for
end if
next i


Une autre solution si tu veux garder la valeur de la ligne est de l'écrire quelquepart sur ton onglet
 

yojema

XLDnaute Occasionnel
Re : Petite aide macro svp !

bonsoir à tous

Dim R As Range
For Each R In Range("D1 : D5")
If Val(R) <> 0 Then MsgBox "Lig " & R.Row & " Col " & R.Column & vblf & R.Value: Exit Sub
Next

EDIT

pas vu ! pas rafraichi ! salut coco lapin

Bonsoir Roland_M

Idem pour pour moi je n avais pas vu ton post

j aime bien ta boucle je ne voulais pas en fair une

mais comme je ne connaissait pas cette facon de faire je vais de ce pas essayer de

la faire tourner dans ma macro

a +
 

yojema

XLDnaute Occasionnel
Re : Petite aide macro svp !

re bonsoir

Bon finalement
j ai opter pour la 2 ème solution de coco lapin
ça donne ceci :

For b = 2 To lignefin1
If Cells(b, col2) <> 0 Then
Exit For
End If
Next b

ce qui me permet ensuite de localiser la plage de cellule suivante et de la supprimer
tel que :
Range(Cells(b, col1), Cells(lignefin1, col2)).Select
Selection.Delete Shift:=xlUp
voila sa fonctionne comme je le souhaite sur ca je vais pas pousser plus loin

Merci a tous les deux !!

En revanche sur ça pour le fun j ai coincer :

Dim R As Range
For Each R In Range("D1 : D5")
If Val(R) <> 0 Then MsgBox "Lig " & R.Row & " Col " & R.Column & vblf & R.Value: Exit Sub
Next
comme je le dis je connais pas donc visiblement la données qui m interessait
pouvait etre obtenu via R.Row comment je sais pas et j ai pas pus essayer

puisque quand j ai fait sauter la partie:
MsgBox "Lig " & R.Row & " Col " & R.Column & vblf & R.Value: Exit Sub
comme ca m interressait pas d avoir ce message
des le lancement de la macro ca me renvoi le message d erreur for sans next ou le contraire ??? bref cha coinche !!!

a+
 

Discussions similaires

Statistiques des forums

Discussions
312 299
Messages
2 086 998
Membres
103 429
dernier inscrit
PhilippeH