Bonjour

Je travaille sur deux dossiers excel. Le premier comporte toutes les macros nécessaires pour traiter les données qui se trouvent sur le second.
j'enchaine les procédures, les unes derrières les autres.

L'une d'elle exécute ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
    'on copie toutes les données de dépenses en valeurs, pour éviter les erreurs
    wFD.Activate  ' active la feuille de données
    wFD.Range(wFD.Cells(2, a), wFD.Cells(NbrLigDon, b + 1)).Select ' sélection de la plage adéquate
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Je ne sais pas pourquoi, mais je suis obligé de spécifier wFD.cells, c'est à dire la feuille de données sur laquelle ce trouve la cellule, malgré le fait d'avoir mis wFD.range.

Ca marche.

la procédure suivante fait ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
'copie la formule jusqu'à la dernière ligne. (La formule se trouve en ligne 2)
    wFD.Range(wFD.Cells(NbrLigDon, a)).Select ' ça plante ici
    Range(Selection, Selection.End(xlUp)).Select
    Selection.FillDown
Et ça ne marche pas. J'ai essayé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
wFD.Range(wFD.Cells(2, a), wFD.Cells(NbrLigDon, a)).Select
Même erreur : la méthode select de la class Range a échoué.
Je ne sais pas si cela a une importance, mais excel garde en pointillé clignotant la sélection de la procédure précédente.


Si quelqu'un(e) peut m'éclairer, je l'en remercie.

Patrice