OVH Cloud OVH Cloud

cellule

10 réponses
Avatar
chris
bonjour,

Je voudrais que dans une macro, sur la colonne A il cherche la premmière
cellule égale à 0 et qu'il la selectionne pour y ecrire dedans

10 réponses

Avatar
anomymousA
bonjour,

Dim plage As Range

Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

plage.Find(what:=0).select

si tu est bien sur que c'est la valeur 0 qu tu cherches car si c'est la
valeur vide il faut ecrire what:="".

A+




bonjour,

Je voudrais que dans une macro, sur la colonne A il cherche la premmière
cellule égale à 0 et qu'il la selectionne pour y ecrire dedans





Avatar
Ellimac
Bonjour,

Sub Toto()
Columns("A:A").Select
Selection.Find(What:="0", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows,
SearchDirection:=xlNext, MatchCase:= _
False).Activate
ActiveCell.Select
End Sub

Camille

-----Message d'origine-----

bonjour,

Je voudrais que dans une macro, sur la colonne A il
cherche la premmière

cellule égale à 0 et qu'il la selectionne pour y ecrire
dedans



.



Avatar
chris
Je viens de tester et quand il rencontre le chiffre 10, 20, 30, etrc.. il
s'arrete.

De plus et xsans vouloir exagérer pourrais tum etraduire en bon francais
Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

plage.Find(what:=0).select


par avance merci


--
"anomymousA" a écrit dans le message
de news:
bonjour,

Dim plage As Range

Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

plage.Find(what:=0).select

si tu est bien sur que c'est la valeur 0 qu tu cherches car si c'est la
valeur vide il faut ecrire what:="".

A+




bonjour,

Je voudrais que dans une macro, sur la colonne A il cherche la premmière
cellule égale à 0 et qu'il la selectionne pour y ecrire dedans







Avatar
anomymousA
re,

mes excuses , j'avais supposé qu'il n'existait pas d'autres occurences
contenant le chiffre 0.

plage.Find(What:=0, lookat:=xlWhole).Select ou plage.Find(What:="0").Select
devrait régler le problème.

Par ailleurs, Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row) veut dire
affecte à la variable plage la plage de cellules allant de A1 à Ax , x étant
le N° de la ligne de la dernière cellule non vide de la colonne A comptée
depuis la cellule A1.
Il existe de multiples façons de déterminer la derrnière cellule non vide
d'une colonne ou d'une plage.
En l'occurrence, la méthode que je t'ai proposée suppose une condition -
condition: il n'existe aucune cellule non vide entre A1 et la fin de la plage
que tu veux scruter dans la colonne, autrement Excel te renverra le N° de la
1ere ligne où il détecte une valeur vide -, et a un avantage par rapport à
d'autres affectation de plage - Avantage: utiliser la méthode evaluate
permet de traiter comme une chaine de caractères la plage de cellule ( en
effet j'ai pu écrire "A1:A" & [A1].End(xlDown).Row comme une chaine de texte
) - tout en obtenant une variable objet plage identifiée comme un objet range
par VBA.

Je ne sais pas si je suis plus clair.

A+


Je viens de tester et quand il rencontre le chiffre 10, 20, 30, etrc.. il
s'arrete.

De plus et xsans vouloir exagérer pourrais tum etraduire en bon francais
Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

plage.Find(what:=0).select


par avance merci


--
"anomymousA" a écrit dans le message
de news:
bonjour,

Dim plage As Range

Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

plage.Find(what:=0).select

si tu est bien sur que c'est la valeur 0 qu tu cherches car si c'est la
valeur vide il faut ecrire what:="".

A+




bonjour,

Je voudrais que dans une macro, sur la colonne A il cherche la premmière
cellule égale à 0 et qu'il la selectionne pour y ecrire dedans












Avatar
chris
Vraiment merci pour tes explications. Cela ma permet de mieux comprendre et
de progresser.

--
Cordialement,

Christophe REINA

"anomymousA" a écrit dans le message
de news:
re,

mes excuses , j'avais supposé qu'il n'existait pas d'autres occurences
contenant le chiffre 0.

plage.Find(What:=0, lookat:=xlWhole).Select ou
plage.Find(What:="0").Select

devrait régler le problème.

Par ailleurs, Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row) veut
dire

affecte à la variable plage la plage de cellules allant de A1 à Ax , x
étant

le N° de la ligne de la dernière cellule non vide de la colonne A comptée
depuis la cellule A1.
Il existe de multiples façons de déterminer la derrnière cellule non vide
d'une colonne ou d'une plage.
En l'occurrence, la méthode que je t'ai proposée suppose une condition -
condition: il n'existe aucune cellule non vide entre A1 et la fin de la
plage

que tu veux scruter dans la colonne, autrement Excel te renverra le N° de
la

1ere ligne où il détecte une valeur vide -, et a un avantage par rapport à
d'autres affectation de plage - Avantage: utiliser la méthode evaluate
permet de traiter comme une chaine de caractères la plage de cellule ( en
effet j'ai pu écrire "A1:A" & [A1].End(xlDown).Row comme une chaine de
texte

) - tout en obtenant une variable objet plage identifiée comme un objet
range

par VBA.

Je ne sais pas si je suis plus clair.

A+


Je viens de tester et quand il rencontre le chiffre 10, 20, 30, etrc..
il


s'arrete.

De plus et xsans vouloir exagérer pourrais tum etraduire en bon francais
Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

plage.Find(what:=0).select


par avance merci


--
"anomymousA" a écrit dans le
message


de news:
bonjour,

Dim plage As Range

Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

plage.Find(what:=0).select

si tu est bien sur que c'est la valeur 0 qu tu cherches car si c'est
la



valeur vide il faut ecrire what:="".

A+




bonjour,

Je voudrais que dans une macro, sur la colonne A il cherche la
premmière




cellule égale à 0 et qu'il la selectionne pour y ecrire dedans














Avatar
Bob Phillips
Je suggère ...

Set plage = Range("A1:A" & Cells(Rows.Count,"A").End(xlDown).Row)

plutôt que...

Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

comme derniers arrêts à la première cellule qui est vide

--

HTH

RP
(remove nothere from the email address if mailing direct)


"anomymousA" wrote in message
news:
bonjour,

Dim plage As Range

Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

plage.Find(what:=0).select

si tu est bien sur que c'est la valeur 0 qu tu cherches car si c'est la
valeur vide il faut ecrire what:="".

A+




bonjour,

Je voudrais que dans une macro, sur la colonne A il cherche la premmière
cellule égale à 0 et qu'il la selectionne pour y ecrire dedans







Avatar
Bob Phillips
oops! Je veux dire

Set plage = Range("A1:A" & Cells(Rows.Count,"A").End(xlUp).Row)

--

HTH

RP
(remove nothere from the email address if mailing direct)


"Bob Phillips" wrote in message
news:eOBF8BJ$
Je suggère ...

Set plage = Range("A1:A" & Cells(Rows.Count,"A").End(xlDown).Row)

plutôt que...

Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

comme derniers arrêts à la première cellule qui est vide

--

HTH

RP
(remove nothere from the email address if mailing direct)


"anomymousA" wrote in message
news:
bonjour,

Dim plage As Range

Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

plage.Find(what:=0).select

si tu est bien sur que c'est la valeur 0 qu tu cherches car si c'est la
valeur vide il faut ecrire what:="".

A+




bonjour,

Je voudrais que dans une macro, sur la colonne A il cherche la
premmière



cellule égale à 0 et qu'il la selectionne pour y ecrire dedans











Avatar
anonymousA
bonjour,

franchement, je n evois aucune difference en dehors du fait que dasn un cas
je vais pouvoir utiliser une chaine textuelle ce qui est parfois bien
pratique et dans l'autre cas , pas.
les 2 méthodes renvoient un objet range et c'est bien ce qui compte.
Range("A1"), evaluate("A1"), cells(1,1) , [A1], range(cells(1,1),cells(1,1))
,cells(1,"A") ne sont jamais que 6 manières d'écrire la même chose.
Mais peut-être as-tu des arguments que je conniais pas ?

A+

"Bob Phillips" a écrit dans le message
de news: eOBF8BJ$
Je suggère ...

Set plage = Range("A1:A" & Cells(Rows.Count,"A").End(xlDown).Row)

plutôt que...

Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

comme derniers arrêts à la première cellule qui est vide

--

HTH

RP
(remove nothere from the email address if mailing direct)


"anomymousA" wrote in message
news:
bonjour,

Dim plage As Range

Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

plage.Find(what:=0).select

si tu est bien sur que c'est la valeur 0 qu tu cherches car si c'est la
valeur vide il faut ecrire what:="".

A+




bonjour,

Je voudrais que dans une macro, sur la colonne A il cherche la
premmière



cellule égale à 0 et qu'il la selectionne pour y ecrire dedans











Avatar
Bob Phillips
Bonjour,

En réponse à la question, mais oui!

Par example, en cellules A1:A10 entrez

A1: 100
A2: 200
A3: 300
A4: 400
A5:
A6: 600
A7: 700
A8:
A9: 900
A10:

Alors, jouez ce petit macro

Msgbox Evaluate("A1:A" & [A1].End(xlDown).Row).Address

Vous voyez $A$1:$A$4?

Maintenant, jouez ce petit macro

MsgBox Range("A1:A" & Cells(Rows.Count,"A").End(xlUp).Row).Address

Vous devriez maintenant voir $A$1:$A$9.

Cette aide ?

--

HTH

RP
(remove nothere from the email address if mailing direct)


"anonymousA" wrote in message
news:41ec0bdd$0$6443$
bonjour,

franchement, je n evois aucune difference en dehors du fait que dasn un
cas

je vais pouvoir utiliser une chaine textuelle ce qui est parfois bien
pratique et dans l'autre cas , pas.
les 2 méthodes renvoient un objet range et c'est bien ce qui compte.
Range("A1"), evaluate("A1"), cells(1,1) , [A1],
range(cells(1,1),cells(1,1))

,cells(1,"A") ne sont jamais que 6 manières d'écrire la même chose.
Mais peut-être as-tu des arguments que je conniais pas ?

A+

"Bob Phillips" a écrit dans le message
de news: eOBF8BJ$
Je suggère ...

Set plage = Range("A1:A" & Cells(Rows.Count,"A").End(xlDown).Row)

plutôt que...

Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

comme derniers arrêts à la première cellule qui est vide

--

HTH

RP
(remove nothere from the email address if mailing direct)


"anomymousA" wrote in message
news:
bonjour,

Dim plage As Range

Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

plage.Find(what:=0).select

si tu est bien sur que c'est la valeur 0 qu tu cherches car si c'est
la



valeur vide il faut ecrire what:="".

A+




bonjour,

Je voudrais que dans une macro, sur la colonne A il cherche la
premmière



cellule égale à 0 et qu'il la selectionne pour y ecrire dedans















Avatar
anonymousA
ben non,

En réponse à la question initialement posée, compte tenu de la manière dont
la procédure du demandeur était formulée, il n'etait pas necessaire de
determiner la dernière ligne par une instruction end(xlup) car on pouvait
supposer qu'il n'existait aucune cellule vide entre A1 et la fin de la plage
occupée par les données dans la colonne A (cf d'ailleurs ma répponse N°2 au
demandeur).

Pour le reste , tu as bien sur raison d'indiquer que la meilleure méthode
pour déterminer une dernière ligne est celle que tu as énoncée. Je ne l'ai
d'ailleurs jamais contesté.

A+

"Bob Phillips" a écrit dans le message
de news: ekVDb5N$
Bonjour,

En réponse à la question, mais oui!

Par example, en cellules A1:A10 entrez

A1: 100
A2: 200
A3: 300
A4: 400
A5:
A6: 600
A7: 700
A8:
A9: 900
A10:

Alors, jouez ce petit macro

Msgbox Evaluate("A1:A" & [A1].End(xlDown).Row).Address

Vous voyez $A$1:$A$4?

Maintenant, jouez ce petit macro

MsgBox Range("A1:A" & Cells(Rows.Count,"A").End(xlUp).Row).Address

Vous devriez maintenant voir $A$1:$A$9.

Cette aide ?

--

HTH

RP
(remove nothere from the email address if mailing direct)


"anonymousA" wrote in message
news:41ec0bdd$0$6443$
bonjour,

franchement, je n evois aucune difference en dehors du fait que dasn un
cas

je vais pouvoir utiliser une chaine textuelle ce qui est parfois bien
pratique et dans l'autre cas , pas.
les 2 méthodes renvoient un objet range et c'est bien ce qui compte.
Range("A1"), evaluate("A1"), cells(1,1) , [A1],
range(cells(1,1),cells(1,1))

,cells(1,"A") ne sont jamais que 6 manières d'écrire la même chose.
Mais peut-être as-tu des arguments que je conniais pas ?

A+

"Bob Phillips" a écrit dans le
message


de news: eOBF8BJ$
Je suggère ...

Set plage = Range("A1:A" & Cells(Rows.Count,"A").End(xlDown).Row)

plutôt que...

Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

comme derniers arrêts à la première cellule qui est vide

--

HTH

RP
(remove nothere from the email address if mailing direct)


"anomymousA" wrote in message
news:
bonjour,

Dim plage As Range

Set plage = Evaluate("A1:A" & [A1].End(xlDown).Row)

plage.Find(what:=0).select

si tu est bien sur que c'est la valeur 0 qu tu cherches car si c'est
la



valeur vide il faut ecrire what:="".

A+




bonjour,

Je voudrais que dans une macro, sur la colonne A il cherche la
premmière



cellule égale à 0 et qu'il la selectionne pour y ecrire dedans