VBA - Sélection baladeuse

Bonjour,

J'ai les neurones gelés, ce matin. La cellule active change et je ne comprends pas pourquoi :

    Range("H6:BQ6").Copy
    Debug.Print ActiveCell.Address
    Range("H401").PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    Debug.Print ActiveCell.Address
capture d ecran 20221216 110319

Le classeur est confidentiel. La macro contenant le code ci-dessus est appelée par une macro événementielle WorkSheet_Change. Si l'erreur n'est pas flagrante, je peux essayer de faire un classeur de test. En exécutant le code ligne à ligne, on voit qu'il n'y a pas de débranchement entre deux instructions. L'exécution se fait directement, d'une ligne à l'autre.

Ce qui est curieux, c'est que j'ai modifié le code :

    Range("H6:BQ6").Select
    Selection.Copy
    Range("H401").Select
    Selection.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False

C'est comme si VBA n'avait pas tenu compte de la modification

Merci d'avance.

Daniel

Bonjour DanielC

Je ne comprends pas quel est ton souci

Si une modification est faite en F25, les cellules H6;BQ6 son copiées et coller à partir de H401..

A+

Bonjour

sauf erreur de ma part dans cette instruction

Range("H6:BQ6").Copy
    Debug.Print ActiveCell.Address

tu ne modifie pas la cellule active... tu copie une plage..

le copy est différent du select..

Fred

Bonjour BrunoM45, fred2406,

Je me suis mal exprimé. Je ne comprends pas pourquoi la cellule active devient H401 alors qu'elle n'a pas été sélectionnée.

Daniel

Bonjour,

Ben, si...

Lors du collage, tu vois bien que la zone active est bien la zone de collage...

Bon appétit

Re

C'est inhérent à l'utilisation d'un paste...

Excel sélectionne automatiquement la cellule pour faire le paste..

une solution serait dans ce cas de sauvegarder la cellule active dans une variable pour l'activée de nouveau après le paste.

Fred

@cousinhub : je le constate, mais ce n'est pas normal. Un collage simple ne change pas la cellule active :

Range("H6:BQ6").Copy Range("H401")

Par exemple.

@fred2406 :

une solution serait dans ce cas de sauvegarder la cellule active dans une variable pour l'activée de nouveau après le paste.

Oui, c'est ce que je vais faire. Merci.

Rechercher des sujets similaires à "vba selection baladeuse"