OVH Cloud OVH Cloud

anonymous au secour! RE: questions de pierre-yves

1 réponse
Avatar
pierre-yves.guernier
bonjour,

pour la 1ere question, on résoud le problème en évitant les select
ou les
activate. Select et activate sont d'ailleurs 2 choses différentes.on
peut
d'ailleurs travailler directement depuis l'autre fichier

'on suppose ici que la cellule A1 est déjà remplie, sinon la 1ere
copie
aura lieu en A2.

with Workbooks("Correspondance table 15.03.05.xls").sheets("Sheet1")
lastemptyrowsheet1=.range("A65536").end(xlup).row+1
.cells(lastemptyrowsheet1,1).value="problème"
end with

POur la 2eme question, je ne vois à priori pas d'erreur fondamentale
mais ne
connaissant pas le contexte ?
Z_Result_test est une plage nommée, non ? Dis en plus eventuellement
pour
mieux comprendre ton problème

A+

Merci beaucoup pour tes réponses.
Cela marche tres bien pour la question 1, si ce n'est que je ne
comprends pas le code...

lastemptyrowsheet1=.range("A65536").end(xlup).row+1=> ca jai compris,
si ce n'est que je me demande comment
lastemptyrowsheet1 va contenir l'adresse de la première cellule vide
de la colonne A (si c'est le cas) sans utilisé .Adress
.cells(lastemptyrowsheet1,1).value="problème
pourquoi doit on mettre lastemptyrowsheet1,1

Merci pour ses informations qui me permettrons de mieux comprendre les
subtilités de visual.

pour la deuxième question:

ActiveCell.FormulaR1C1 = "=IF(Z_Result_test=""ok"",'[Correspondance
table 15.03.05.xls]OCH'!R357C3,""pas a jour"")"'

Z_Result_test est déclaré comme string.
en fait pour t'expliquer le contesxte, je dois comparer 2 Tab, 1 est
le tab de référence et l'autre est le tab que je dois tester.
le Z_Result_test me permet de savoir si je compare bien les meme
lignes,si Z_Result_test vaut Ok, je dois remplacer le contenu
d'une cellule par le contenu d'une autre.
ici je veux remplacer le contenu de la cellule active par le contenu
de la cellule Correspondance table 15.03.05.xls]OCH'!R357C3
uniquement si Z-result_test vaut ok.
Si ca t'aide a comprendre t'es vachement fort!

en tous les cas merci beaucoup pour ton aide.

actuellement j'ai réussi a contourner ce problème par contre je
n'arrive pas a contourner un autre problème:

a savoir:

Je désire copier les éléments se trouvant dans les cellules se
trouvant en bas d'un tableau.
j'utilise ces deux lignes de codes:
Range("Q1:BL1").End(xlDown).Select
Selection.Copy

mais la première ligne n'est pas acceptée, vu que j'utilise un
filtre,
je connais pas l'adresse de la dernière ligne. Je peux la connaitre
et
la mettre dans une variable mais
Range("Q":"BL" & ActiveCellRow).End(xlDown).Select ne marche pas non
plus..
si quelqu'un peut m'aider ce serait super cool!
merci

1 réponse

Avatar
anonymousA
bonjour,

tu n'as pas besoin de faire appel à quelqu'un nommément. Ici, beaucoup de
contributeurs peuvent te répondre.
Nonobstant, concernant tes questions:

1-la propriété Row d'un objet range renvoie le N° de la ligne. En
conséquence, ce résultat est utilisé pour pointer sur la cellule
correspondante en écrivant
cells(lastemptyrowsheet1,1) car une cellule peut être désignée en écrivant
cells( N°de ligne, N° de colonne). Comme en l'occurence, tu souhaitais que
ce soit sur la colonne A, celle-ci a evidemment le N°1.

2-pour ta formule , dont la syntaxe est correcte d'ailleurs, le problème
vient sans doute du fait que pour marcher, Z_Result_test doit être une plage
nommée faisant référence à une cellule en particulier dont le résultat doit
être "OK", ou alors je n'ai pas compris ce que tu souhaitais.

3-Il me semble que tu as eu une réponse hier. Par ailleurs, dans ta formule
que tu communiques,il m'apparait qu'il doit y avoir des problèmes de
guilements mal placés et un point manquant entre activecell et row.
Ceci dit, sans être très sur d'avoir bien compris ta demande, je te propose
l'instruction suivante : Range("Q1:BL" & [BL1].End(xlDown).Row).Select

Bon , à voir si ce que je t'ai dit plus haut correspond réellement à ta
demande ?.

A+



bonjour,

pour la 1ere question, on résoud le problème en évitant les select
ou les
activate. Select et activate sont d'ailleurs 2 choses différentes.on
peut
d'ailleurs travailler directement depuis l'autre fichier

'on suppose ici que la cellule A1 est déjà remplie, sinon la 1ere
copie
aura lieu en A2.

with Workbooks("Correspondance table 15.03.05.xls").sheets("Sheet1")
lastemptyrowsheet1=.range("A65536").end(xlup).row+1
..cells(lastemptyrowsheet1,1).value="problème"
end with

POur la 2eme question, je ne vois à priori pas d'erreur fondamentale
mais ne
connaissant pas le contexte ?
Z_Result_test est une plage nommée, non ? Dis en plus eventuellement
pour
mieux comprendre ton problème

A+

Merci beaucoup pour tes réponses.
Cela marche tres bien pour la question 1, si ce n'est que je ne
comprends pas le code...

lastemptyrowsheet1=.range("A65536").end(xlup).row+1=> ca jai compris,
si ce n'est que je me demande comment
lastemptyrowsheet1 va contenir l'adresse de la première cellule vide
de la colonne A (si c'est le cas) sans utilisé .Adress
.cells(lastemptyrowsheet1,1).value="problème
pourquoi doit on mettre lastemptyrowsheet1,1

Merci pour ses informations qui me permettrons de mieux comprendre les
subtilités de visual.

pour la deuxième question:

ActiveCell.FormulaR1C1 = "=IF(Z_Result_test=""ok"",'[Correspondance
table 15.03.05.xls]OCH'!R357C3,""pas a jour"")"'

Z_Result_test est déclaré comme string.
en fait pour t'expliquer le contesxte, je dois comparer 2 Tab, 1 est
le tab de référence et l'autre est le tab que je dois tester.
le Z_Result_test me permet de savoir si je compare bien les meme
lignes,si Z_Result_test vaut Ok, je dois remplacer le contenu
d'une cellule par le contenu d'une autre.
ici je veux remplacer le contenu de la cellule active par le contenu
de la cellule Correspondance table 15.03.05.xls]OCH'!R357C3
uniquement si Z-result_test vaut ok.
Si ca t'aide a comprendre t'es vachement fort!

en tous les cas merci beaucoup pour ton aide.

actuellement j'ai réussi a contourner ce problème par contre je
n'arrive pas a contourner un autre problème:

a savoir:

Je désire copier les éléments se trouvant dans les cellules se
trouvant en bas d'un tableau.
j'utilise ces deux lignes de codes:
Range("Q1:BL1").End(xlDown).Select
Selection.Copy

mais la première ligne n'est pas acceptée, vu que j'utilise un
filtre,
je connais pas l'adresse de la dernière ligne. Je peux la connaitre
et
la mettre dans une variable mais
Range("Q":"BL" & ActiveCellRow).End(xlDown).Select ne marche pas non
plus..
si quelqu'un peut m'aider ce serait super cool!
merci