Bug macro
renoncule62
-
soulsy Messages postés 2939 Statut Membre -
soulsy Messages postés 2939 Statut Membre -
Bonjour,
je souhaite coller une plage de cellules dans un autre classeur dans lequel j'aurais ajouté un nouvel onglet.
Certainement mon manque de connaissance mais mon code ci-dessous ne fonctionne pas et s'arréte sur Range("C2").Select et je ne omprend pas pourquoi.
Si je suprime cette instruction, ça fonctionne...
Merci de votre aide et explications
je souhaite coller une plage de cellules dans un autre classeur dans lequel j'aurais ajouté un nouvel onglet.
Certainement mon manque de connaissance mais mon code ci-dessous ne fonctionne pas et s'arréte sur Range("C2").Select et je ne omprend pas pourquoi.
Si je suprime cette instruction, ça fonctionne...
Private Sub CommandButton1_Click()
Range("B2:B7").Select
Selection.Copy
Application.Workbooks.Open "D:\essai.xls"
Dim ajoutonglet As Worksheet
Set ajoutonglet = Sheets.Add(After:=Sheets(Sheets.Count))
ajoutonglet.Name = "newonglet"
Range("C2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
Merci de votre aide et explications
7 réponses
-
Bonjour,
Peut-être qu'il faut définir sur quelle feuille la commande doit s'appliquer avec la commande suivante : Worksheets("Sheet1").Activate ? -
Bonjour,
Merci pour ton intervention soulsy mais j'avais déjà éssayé cela de cette façon:Range("B2:B7").Select Selection.Copy Application.Workbooks.Open "D:\essai.xls" Dim ajoutonglet As Worksheet Set ajoutonglet = Sheets.Add(After:=Sheets(Sheets.Count)) ajoutonglet.Name = "newonglet" Worksheets("newonglet").Activate Range("C2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveWorkbook.Save ActiveWorkbook.Close End Sub
mais la macro s'arrete toujours sur Range("C2").Select, je ne comprend pas ?? -
-
Bonsoir,
En fait je crois que c'est l'ordre des opérations qui ne va pas, si tu essayes de le faire manuellement ça ne marche pas. Excel perd ce qu'il a copié au moment où tu dis de sélectionner la cellule C2.
Je pense qu'il faut le faire dans cette ordre :
Ouvrir ton fichier essai
Activer la cellule C2
Copier les données du 1er classeur (en l'activant peut-être avec Workbooks("...").Activate ?)
Coller les données sur ton classeur essai.xls (sans rien sélectionner avant l'opération de collage et surement en activant le classeur)
Je sais pas si j'ai été clair et peut-être qu'il y a un moyen plus "élégant" de contourner ça.
-
-
Bonsoir Soulsy,
J'ai essayé ta suggestion comme ci-dessous mais rien n'y fait et la macro s'arrete toujours sur Range("C2").Select Grrr.... je ne comprend vraiment pas pourquoi.
merci pour ton interventionPrivate Sub CommandButton1_Click() Application.Workbooks.Open "D:\essai.xls" Dim ajoutonglet As Worksheet Set ajoutonglet = Sheets.Add(After:=Sheets(Sheets.Count)) ajoutonglet.Name = "newonglet" Range("C2").Select Workbooks("source.xls").Activate Range("B2:B7").Select Selection.Copy Workbooks("essai.xls").Activate Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveWorkbook.Save ActiveWorkbook.Close End Sub -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci à toi Soulsy pour ton implication.
Je ne comprend vraiment pas, j'ai tout reconstruit avec de nouveaux fichiers et le code ci dessus mais ça ne fonctionne toujours pas, le fichier "essai" s'ouvre, l'onglet "newonglet" est bien créé mais la cellule "c2" n'est pas sélectionnée et la macro bloque à ce stade.
Chez toi les valeurs sont collées dans "essai" de c2 à c7 ?? et le classeur "essai"est fermé et sauvegardé ?? -
Bonjour,
Pas de message d'erreur, la macro s'arrete et surligne Range("C2").Select ??
chez toi le fichier enregistre et ferme?? -
Merci Sulsy, effectivement, en passant par un module depuis un bouton formulaire, ça marche!!
reste à expliquer le phénoméne par ceux qui voudront bien s'arréter ici
Merci pour tout, c'est sympa, et bonne continuation...