Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Bonjour ! Une petite erreur de positionnement ?

8 réponses
Avatar
DC
Bonjour, Excel 2000 sur XP

Voici l'origine de mes problèmes :
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________

Cette partie de macro fonctionne très bien en utilisation normal, c'est à
dire, ligne après ligne
Mais en cas de correction sur n'importe qu'elle ligne au dessus, la copie(
fr ) se positionne toujour sur la dernière ligne vierge et colonne 10,
J'ai compris le pourquoi de la chose, mais peut-ètre exist-il un moyen d'y
remedier ?...........j'aimerais une réponse positive, pour pouvoir
l'utiliser en normal ou en correction ?.........Merci d'avance d'y rèflèchir
!

Cordialement ! DC

8 réponses

Avatar
Péhemme
Bonjour,

L'instruction évoquée active la cellule placée 10 colonnes après la colonne
A c'est à dire colonne K soit la 11ème colonne (et non pas la 10ème) du
tableau et ce sur la dernière ligne non vide (et non pas sur la dernière
ligne vierge qui est souvent la 65536).
Quel est ton vrai problème ?
Quelles type de correction évoques-tu ?
Quel but souhaites-tu atteindre ?
Michel


"DC" a écrit dans le message de
news:4829637e$0$848$
Bonjour, Excel 2000 sur XP

Voici l'origine de mes problèmes :
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________

Cette partie de macro fonctionne très bien en utilisation normal, c'est à
dire, ligne après ligne
Mais en cas de correction sur n'importe qu'elle ligne au dessus, la
copie( fr ) se positionne toujour sur la dernière ligne vierge et colonne
10,
J'ai compris le pourquoi de la chose, mais peut-ètre exist-il un moyen d'y
remedier ?...........j'aimerais une réponse positive, pour pouvoir
l'utiliser en normal ou en correction ?.........Merci d'avance d'y
rèflèchir !

Cordialement ! DC



Avatar
Michel Angelosanto
Si j'ai bien compris, tu ouvres ta feuille, tu te positionne sur la dernière
ligne, modifies la donnée en colonne 10 puis et tu copies cette valeur.
Si tu fais une modification sur une ligne du dessus, tu vas toujours prendre
la dernière ligne.
Il faut donc exécuter la macro en deux temps
1) à l'ouverture de la feuille se positionner en dernière ligne, ce n'est
pas important mais utile pour se positionner à l'endroit à modifier de
préférence.
2) sur l'évènement on change, prendre la colonne 10 de la ligne active qui
elle à changé après l'exécution du 1) si on a fait une modification sur une
ligne au dessus.

"DC" a écrit dans le message de
news:4829637e$0$848$
Bonjour, Excel 2000 sur XP

Voici l'origine de mes problèmes :
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________

Cette partie de macro fonctionne très bien en utilisation normal, c'est à
dire, ligne après ligne
Mais en cas de correction sur n'importe qu'elle ligne au dessus, la
copie( fr ) se positionne toujour sur la dernière ligne vierge et colonne
10,
J'ai compris le pourquoi de la chose, mais peut-ètre exist-il un moyen d'y
remedier ?...........j'aimerais une réponse positive, pour pouvoir
l'utiliser en normal ou en correction ?.........Merci d'avance d'y
rèflèchir !

Cordialement ! DC



--
Michel Angelosanto, Bordeaux
http://angelosa.free.fr/

Avatar
Péhemme
et tant pis pour mes fautes d'orthographe, Mgr Banni m'absoudra.

Michel

"Péhemme" a écrit dans le message de
news:
Bonjour,

L'instruction évoquée active la cellule placée 10 colonnes après la
colonne A c'est à dire colonne K soit la 11ème colonne (et non pas la
10ème) du tableau et ce sur la dernière ligne non vide (et non pas sur la
dernière ligne vierge qui est souvent la 65536).
Quel est ton vrai problème ?
Quelles type de correction évoques-tu ?
Quel but souhaites-tu atteindre ?
Michel


"DC" a écrit dans le message de
news:4829637e$0$848$
Bonjour, Excel 2000 sur XP

Voici l'origine de mes problèmes :
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________

Cette partie de macro fonctionne très bien en utilisation normal, c'est à
dire, ligne après ligne
Mais en cas de correction sur n'importe qu'elle ligne au dessus, la
copie( fr ) se positionne toujour sur la dernière ligne vierge et colonne
10,
J'ai compris le pourquoi de la chose, mais peut-ètre exist-il un moyen
d'y remedier ?...........j'aimerais une réponse positive, pour pouvoir
l'utiliser en normal ou en correction ?.........Merci d'avance d'y
rèflèchir !

Cordialement ! DC






Avatar
DC
Bonsoir Messieurs,

Je vous demande de m'excuser, car j'ai dû m'expliquer comme un pied, voilà !
essayons de faire mieux en étant plus simple,

Après avoir activé plusieurs lignes avec le curseur en colonne ( 1 ),
l'ensemble est parfait,
par contre, si je veux modifier une ligne déjà écrite à partir de la colonne
( 1 ), la deuxième partie de la macro ne s'éxécute pas sur la ligne active,
du fait de :
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________

je pense avoir été plus clair ! un grand MERCI d'avance !

Cordialement ! DC

"Michel Angelosanto" a écrit dans le message de news:

Si j'ai bien compris, tu ouvres ta feuille, tu te positionne sur la
dernière ligne, modifies la donnée en colonne 10 puis et tu copies cette
valeur.
Si tu fais une modification sur une ligne du dessus, tu vas toujours
prendre la dernière ligne.
Il faut donc exécuter la macro en deux temps
1) à l'ouverture de la feuille se positionner en dernière ligne, ce n'est
pas important mais utile pour se positionner à l'endroit à modifier de
préférence.
2) sur l'évènement on change, prendre la colonne 10 de la ligne active qui
elle à changé après l'exécution du 1) si on a fait une modification sur
une ligne au dessus.

"DC" a écrit dans le message de
news:4829637e$0$848$
Bonjour, Excel 2000 sur XP

Voici l'origine de mes problèmes :
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________

Cette partie de macro fonctionne très bien en utilisation normal, c'est à
dire, ligne après ligne
Mais en cas de correction sur n'importe qu'elle ligne au dessus, la
copie( fr ) se positionne toujour sur la dernière ligne vierge et colonne
10,
J'ai compris le pourquoi de la chose, mais peut-ètre exist-il un moyen
d'y remedier ?...........j'aimerais une réponse positive, pour pouvoir
l'utiliser en normal ou en correction ?.........Merci d'avance d'y
rèflèchir !

Cordialement ! DC



--
Michel Angelosanto, Bordeaux
http://angelosa.free.fr/



Avatar
Péhemme
Bonsoir,

1°) tu apportes une modification à une ligne désirée.
2°) tu sélectionnes ta zone à copier (par VBA j'imagine).
Détermination de la zone "fr"
3°) tu lances ta macro mentionnée
4°) tu as recopié la zone appelée "fr"

==> Quel est le problème ?
Quel est ton vrai problème ?
Quel type de correction évoques-tu ?
Quel but souhaites-tu atteindre ?
Michel

"DC" a écrit dans le message de
news:4829db3b$0$923$
Bonsoir Messieurs,

Je vous demande de m'excuser, car j'ai dû m'expliquer comme un pied, voilà
! essayons de faire mieux en étant plus simple,

Après avoir activé plusieurs lignes avec le curseur en colonne ( 1 ),
l'ensemble est parfait,
par contre, si je veux modifier une ligne déjà écrite à partir de la
colonne ( 1 ), la deuxième partie de la macro ne s'éxécute pas sur la
ligne active, du fait de :
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________

je pense avoir été plus clair ! un grand MERCI d'avance !

Cordialement ! DC

"Michel Angelosanto" a écrit dans le message de news:

Si j'ai bien compris, tu ouvres ta feuille, tu te positionne sur la
dernière ligne, modifies la donnée en colonne 10 puis et tu copies cette
valeur.
Si tu fais une modification sur une ligne du dessus, tu vas toujours
prendre la dernière ligne.
Il faut donc exécuter la macro en deux temps
1) à l'ouverture de la feuille se positionner en dernière ligne, ce n'est
pas important mais utile pour se positionner à l'endroit à modifier de
préférence.
2) sur l'évènement on change, prendre la colonne 10 de la ligne active
qui elle à changé après l'exécution du 1) si on a fait une modification
sur une ligne au dessus.

"DC" a écrit dans le message de
news:4829637e$0$848$
Bonjour, Excel 2000 sur XP

Voici l'origine de mes problèmes :
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________

Cette partie de macro fonctionne très bien en utilisation normal, c'est
à dire, ligne après ligne
Mais en cas de correction sur n'importe qu'elle ligne au dessus, la
copie( fr ) se positionne toujour sur la dernière ligne vierge et
colonne 10,
J'ai compris le pourquoi de la chose, mais peut-ètre exist-il un moyen
d'y remedier ?...........j'aimerais une réponse positive, pour pouvoir
l'utiliser en normal ou en correction ?.........Merci d'avance d'y
rèflèchir !

Cordialement ! DC



--
Michel Angelosanto, Bordeaux
http://angelosa.free.fr/







Avatar
DC
Bonjour Michel,

1°) je travaille sur 2 classeurs différents "DEVIS" + "RECAP DEVIS"
2°) lorsque le devis est éxécuté, je transfert certaine données du devis
vers "Récap Devis" ( par VBA ),
3°) je peux faire çà plusieurs fois de suite et çà ne pose aucun problème,
4°) par contre si une modification intervient sur un ancien devis, donc dans
le transfert sur "Récap Devis" sur sa ligne déjà écrite, la 2ème partie de
la macro, éxécute sa correction sur la bonne colonne mais la mauvaise ligne
5°) je crois deviner que cette inconvénient est dû à la 1ère ligne de la
seconde partie de la macro, soit : Offset(0,10) qui fonctionne très bien en
addition de lignes, mais pas en correction de ligne déjà écrite,
6°) le but que je souhaite atteindre, est que le (VBA) puisse résoude le
probléme dans le cas ( normal ) et le cas ( correction ),
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________


J'espère ne pas trop t'ennuyer avec mes explications plus ou
moins..........enfin bon !!!!!!

Cordialement ! DC

"Péhemme" a écrit dans le message de news:
e$
Bonsoir,

1°) tu apportes une modification à une ligne désirée.
2°) tu sélectionnes ta zone à copier (par VBA j'imagine).
Détermination de la zone "fr"
3°) tu lances ta macro mentionnée
4°) tu as recopié la zone appelée "fr"

==> Quel est le problème ?
Quel est ton vrai problème ?
Quel type de correction évoques-tu ?
Quel but souhaites-tu atteindre ?
Michel

"DC" a écrit dans le message de
news:4829db3b$0$923$
Bonsoir Messieurs,

Je vous demande de m'excuser, car j'ai dû m'expliquer comme un pied,
voilà ! essayons de faire mieux en étant plus simple,

Après avoir activé plusieurs lignes avec le curseur en colonne ( 1 ),
l'ensemble est parfait,
par contre, si je veux modifier une ligne déjà écrite à partir de la
colonne ( 1 ), la deuxième partie de la macro ne s'éxécute pas sur la
ligne active, du fait de :
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________

je pense avoir été plus clair ! un grand MERCI d'avance !

Cordialement ! DC

"Michel Angelosanto" a écrit dans le message de news:

Si j'ai bien compris, tu ouvres ta feuille, tu te positionne sur la
dernière ligne, modifies la donnée en colonne 10 puis et tu copies cette
valeur.
Si tu fais une modification sur une ligne du dessus, tu vas toujours
prendre la dernière ligne.
Il faut donc exécuter la macro en deux temps
1) à l'ouverture de la feuille se positionner en dernière ligne, ce
n'est pas important mais utile pour se positionner à l'endroit à
modifier de préférence.
2) sur l'évènement on change, prendre la colonne 10 de la ligne active
qui elle à changé après l'exécution du 1) si on a fait une modification
sur une ligne au dessus.

"DC" a écrit dans le message de
news:4829637e$0$848$
Bonjour, Excel 2000 sur XP

Voici l'origine de mes problèmes :
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________

Cette partie de macro fonctionne très bien en utilisation normal, c'est
à dire, ligne après ligne
Mais en cas de correction sur n'importe qu'elle ligne au dessus, la
copie( fr ) se positionne toujour sur la dernière ligne vierge et
colonne 10,
J'ai compris le pourquoi de la chose, mais peut-ètre exist-il un moyen
d'y remedier ?...........j'aimerais une réponse positive, pour pouvoir
l'utiliser en normal ou en correction ?.........Merci d'avance d'y
rèflèchir !

Cordialement ! DC



--
Michel Angelosanto, Bordeaux
http://angelosa.free.fr/










Avatar
DC
Re Bonjour Michel,

Voilà, j'ai enfin réussi à obtenir ce que je voulais, en modifiant les 2
parties concernées de la macro, que je te joint, pour j'espère, ta bonne
compréhension ! encore un grand MERCI !
'-------------------------------------------------------------------------
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-4]*Coéf_MP"
Selection.HorizontalAlignment = xlGeneral
Selection.NumberFormat = "#,##0.00 [$?-40C]"

ActiveCell.Offset(0, 2).Range("A1").Select
[fr].Copy ActiveCell

ActiveCell.Offset(0, -5).Range("A1").Select
[Formules_TVA].Copy ActiveCell

Application.Goto Reference:="Devis"
Range("A65536").End(xlUp).Offset(1, 0).Activate

Application.ScreenUpdating = True

End Sub
'-------------------------------------------------------------------------

Cordialement ! DC


"DC" a écrit dans le message de news:
482ab4a9$0$928$
Bonjour Michel,

1°) je travaille sur 2 classeurs différents "DEVIS" + "RECAP DEVIS"
2°) lorsque le devis est éxécuté, je transfert certaine données du devis
vers "Récap Devis" ( par VBA ),
3°) je peux faire çà plusieurs fois de suite et çà ne pose aucun problème,
4°) par contre si une modification intervient sur un ancien devis, donc
dans le transfert sur "Récap Devis" sur sa ligne déjà écrite, la 2ème
partie de la macro, éxécute sa correction sur la bonne colonne mais la
mauvaise ligne
5°) je crois deviner que cette inconvénient est dû à la 1ère ligne de la
seconde partie de la macro, soit : Offset(0,10) qui fonctionne très bien
en addition de lignes, mais pas en correction de ligne déjà écrite,
6°) le but que je souhaite atteindre, est que le (VBA) puisse résoude le
probléme dans le cas ( normal ) et le cas ( correction ),
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________


J'espère ne pas trop t'ennuyer avec mes explications plus ou
moins..........enfin bon !!!!!!

Cordialement ! DC

"Péhemme" a écrit dans le message de news:
e$
Bonsoir,

1°) tu apportes une modification à une ligne désirée.
2°) tu sélectionnes ta zone à copier (par VBA j'imagine).
Détermination de la zone "fr"
3°) tu lances ta macro mentionnée
4°) tu as recopié la zone appelée "fr"

==> Quel est le problème ?
Quel est ton vrai problème ?
Quel type de correction évoques-tu ?
Quel but souhaites-tu atteindre ?
Michel

"DC" a écrit dans le message de
news:4829db3b$0$923$
Bonsoir Messieurs,

Je vous demande de m'excuser, car j'ai dû m'expliquer comme un pied,
voilà ! essayons de faire mieux en étant plus simple,

Après avoir activé plusieurs lignes avec le curseur en colonne ( 1 ),
l'ensemble est parfait,
par contre, si je veux modifier une ligne déjà écrite à partir de la
colonne ( 1 ), la deuxième partie de la macro ne s'éxécute pas sur la
ligne active, du fait de :
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________

je pense avoir été plus clair ! un grand MERCI d'avance !

Cordialement ! DC

"Michel Angelosanto" a écrit dans le message de news:

Si j'ai bien compris, tu ouvres ta feuille, tu te positionne sur la
dernière ligne, modifies la donnée en colonne 10 puis et tu copies
cette valeur.
Si tu fais une modification sur une ligne du dessus, tu vas toujours
prendre la dernière ligne.
Il faut donc exécuter la macro en deux temps
1) à l'ouverture de la feuille se positionner en dernière ligne, ce
n'est pas important mais utile pour se positionner à l'endroit à
modifier de préférence.
2) sur l'évènement on change, prendre la colonne 10 de la ligne active
qui elle à changé après l'exécution du 1) si on a fait une modification
sur une ligne au dessus.

"DC" a écrit dans le message de
news:4829637e$0$848$
Bonjour, Excel 2000 sur XP

Voici l'origine de mes problèmes :
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________

Cette partie de macro fonctionne très bien en utilisation normal,
c'est à dire, ligne après ligne
Mais en cas de correction sur n'importe qu'elle ligne au dessus, la
copie( fr ) se positionne toujour sur la dernière ligne vierge et
colonne 10,
J'ai compris le pourquoi de la chose, mais peut-ètre exist-il un moyen
d'y remedier ?...........j'aimerais une réponse positive, pour pouvoir
l'utiliser en normal ou en correction ?.........Merci d'avance d'y
rèflèchir !

Cordialement ! DC



--
Michel Angelosanto, Bordeaux
http://angelosa.free.fr/














Avatar
Péhemme
Content d'avoir été utile.
Amicalement
Michel

"DC" a écrit dans le message de
news:482aec51$0$863$
Re Bonjour Michel,

Voilà, j'ai enfin réussi à obtenir ce que je voulais, en modifiant les 2
parties concernées de la macro, que je te joint, pour j'espère, ta bonne
compréhension ! encore un grand MERCI !
'-------------------------------------------------------------------------
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-4]*Coéf_MP"
Selection.HorizontalAlignment = xlGeneral
Selection.NumberFormat = "#,##0.00 [$?-40C]"

ActiveCell.Offset(0, 2).Range("A1").Select
[fr].Copy ActiveCell

ActiveCell.Offset(0, -5).Range("A1").Select
[Formules_TVA].Copy ActiveCell

Application.Goto Reference:="Devis"
Range("A65536").End(xlUp).Offset(1, 0).Activate

Application.ScreenUpdating = True

End Sub
'-------------------------------------------------------------------------

Cordialement ! DC


"DC" a écrit dans le message de news:
482ab4a9$0$928$
Bonjour Michel,

1°) je travaille sur 2 classeurs différents "DEVIS" + "RECAP DEVIS"
2°) lorsque le devis est éxécuté, je transfert certaine données du devis
vers "Récap Devis" ( par VBA ),
3°) je peux faire çà plusieurs fois de suite et çà ne pose aucun
problème,
4°) par contre si une modification intervient sur un ancien devis, donc
dans le transfert sur "Récap Devis" sur sa ligne déjà écrite, la 2ème
partie de la macro, éxécute sa correction sur la bonne colonne mais la
mauvaise ligne
5°) je crois deviner que cette inconvénient est dû à la 1ère ligne de la
seconde partie de la macro, soit : Offset(0,10) qui fonctionne très bien
en addition de lignes, mais pas en correction de ligne déjà écrite,
6°) le but que je souhaite atteindre, est que le (VBA) puisse résoude le
probléme dans le cas ( normal ) et le cas ( correction ),
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________


J'espère ne pas trop t'ennuyer avec mes explications plus ou
moins..........enfin bon !!!!!!

Cordialement ! DC

"Péhemme" a écrit dans le message de news:
e$
Bonsoir,

1°) tu apportes une modification à une ligne désirée.
2°) tu sélectionnes ta zone à copier (par VBA j'imagine).
Détermination de la zone "fr"
3°) tu lances ta macro mentionnée
4°) tu as recopié la zone appelée "fr"

==> Quel est le problème ?
Quel est ton vrai problème ?
Quel type de correction évoques-tu ?
Quel but souhaites-tu atteindre ?
Michel

"DC" a écrit dans le message de
news:4829db3b$0$923$
Bonsoir Messieurs,

Je vous demande de m'excuser, car j'ai dû m'expliquer comme un pied,
voilà ! essayons de faire mieux en étant plus simple,

Après avoir activé plusieurs lignes avec le curseur en colonne ( 1 ),
l'ensemble est parfait,
par contre, si je veux modifier une ligne déjà écrite à partir de la
colonne ( 1 ), la deuxième partie de la macro ne s'éxécute pas sur la
ligne active, du fait de :
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________

je pense avoir été plus clair ! un grand MERCI d'avance !

Cordialement ! DC

"Michel Angelosanto" a écrit dans le message de
news:
Si j'ai bien compris, tu ouvres ta feuille, tu te positionne sur la
dernière ligne, modifies la donnée en colonne 10 puis et tu copies
cette valeur.
Si tu fais une modification sur une ligne du dessus, tu vas toujours
prendre la dernière ligne.
Il faut donc exécuter la macro en deux temps
1) à l'ouverture de la feuille se positionner en dernière ligne, ce
n'est pas important mais utile pour se positionner à l'endroit à
modifier de préférence.
2) sur l'évènement on change, prendre la colonne 10 de la ligne active
qui elle à changé après l'exécution du 1) si on a fait une
modification sur une ligne au dessus.

"DC" a écrit dans le message de
news:4829637e$0$848$
Bonjour, Excel 2000 sur XP

Voici l'origine de mes problèmes :
___________________________________________
Range("A65536").End(xlUp).Offset(0, 10).Activate

[fr].Copy ActiveCell
___________________________________________

Cette partie de macro fonctionne très bien en utilisation normal,
c'est à dire, ligne après ligne
Mais en cas de correction sur n'importe qu'elle ligne au dessus, la
copie( fr ) se positionne toujour sur la dernière ligne vierge et
colonne 10,
J'ai compris le pourquoi de la chose, mais peut-ètre exist-il un
moyen d'y remedier ?...........j'aimerais une réponse positive, pour
pouvoir l'utiliser en normal ou en correction ?.........Merci
d'avance d'y rèflèchir !

Cordialement ! DC



--
Michel Angelosanto, Bordeaux
http://angelosa.free.fr/