Petite aide macro svp !

  • Initiateur de la discussion Initiateur de la discussion yojema
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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+
 
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:
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:
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+
 
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
 
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 +
 
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+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
20
Affichages
1 K
Réponses
3
Affichages
439
Réponses
3
Affichages
1 K
Réponses
7
Affichages
1 K
D
Réponses
4
Affichages
1 K
Retour