Débutant VB: pourquoi donc ces qq lignes génèrent-elles une erreur?

lama

XLDnaute Nouveau
Bonjour,
je suis d'un niveau intermédiaire en VB, j'ai plutôt codé en impératif qu'en objet, et j'avoue ma totale méconnaissance des classes et méthodes que j'utilise.
Cependant, j'obtiens un comportement que je ne comprends pas avec le code suivant:
Code:
    Dim c As Range
    Dim Source As String
    Dim Cible As String
    Dim Impression As String
    Dim Plage As Range
    Dim début, fin As Long
    
    Source = Worksheets("FeuilleA").Name
    Cible = Worksheets("FeuilleB").Name
    Impression = Worksheets("FeuilleC").Name 'La feuille courante, contenant le bouton qui lance cette procédure

    début = Sheets(Impression).Range("C4").Value
    fin = Sheets(Impression).Range("C5").Value
    Set Plage = Sheets(Impression).Range(Cells(début + 1, 1), Cells(fin + 1, 1))

Ceci fonctionne parfaitement, mais si dans la dernière ligne je remplace "Impression" par "Source" (je change de feuille) j'obtiens 'Erreur 1004 définie par l'application ou par l'objet' sur cette dernière ligne.

Help please! :(
 

ROGER2327

XLDnaute Barbatruc
Re : Débutant VB: pourquoi donc ces qq lignes génèrent-elles une erreur?

Bonjour lama.


Dans
Code:
Set Plage = Sheets(Impression).Range(Cells(début + 1, 1), Cells(fin + 1, 1))
Cells(début + 1, 1) et Cells(fin + 1, 1) font implicitement référence à des cellules de l'onglet nommé "FeuilleC" puisque
"Impression = Worksheets("FeuilleC").Name 'La feuille courante, contenant le bouton qui lance cette procédure"​
et s'écrit explicitement
Code:
Set Plage = Sheets(Impression).Range(Sheets(Impression).Cells(début + 1, 1),  Sheets(Impression).Cells(fin + 1, 1))

Lorsque vous écrivez
Code:
Set Plage = Sheets(Source).Range(Cells(début + 1, 1), Cells(fin + 1, 1))
vous obtenez explicitement
Code:
Set Plage = Sheets(Source).Range(Sheets(Impression).Cells(début + 1, 1),  Sheets(Impression).Cells(fin + 1, 1))


Difficile d'en dire plus sur quelques lignes de code ne constituant même pas une procédure complète, de surcroît sans support...


Bonne journée.


ℝOGER2327
#7695


Jeudi 19 As 142 (Saint Courtial des Péreires, aérostier et inventeur - fête Suprême Quarte)
1[SUP]er[/SUP] Frimaire An CCXXIII, 5,9916h - raiponse
2014-W47-5T14:22:48Z
 

Statistiques des forums

Discussions
314 155
Messages
2 106 459
Membres
109 590
dernier inscrit
Paparazite