Copié collé vba ne fonctionne pas
renoncule62
Messages postés
94
Statut
Membre
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
sous excel, Je souhaiterais, avant la fermeture d'un fichier,
copier la valeur d' une cellule de ce fichier
ouvrir un autre fichier
coller la valeur précédemment copiée dans ce nouveau fichier ouvert
enregistrer et fermer ce dernier fichier
et enfin fermer le fichier source (contenant la macro )
voici le code que j'ai utilisé mais la valeur n'est pas collée et je ne comprend pas pourquoi
j'ai essayé avec des activate un peu partout etc... mais rien à faire
si quelqu' un peut m' aider et surtout m'expliquer, ça serait sympa
voici mon code
sous excel, Je souhaiterais, avant la fermeture d'un fichier,
copier la valeur d' une cellule de ce fichier
ouvrir un autre fichier
coller la valeur précédemment copiée dans ce nouveau fichier ouvert
enregistrer et fermer ce dernier fichier
et enfin fermer le fichier source (contenant la macro )
voici le code que j'ai utilisé mais la valeur n'est pas collée et je ne comprend pas pourquoi
j'ai essayé avec des activate un peu partout etc... mais rien à faire
si quelqu' un peut m' aider et surtout m'expliquer, ça serait sympa
voici mon code
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Range("B5").Select
Selection.Copy
ChDir "D:moncheminversmondossier"
Workbooks.Open Filename:= _
"D:monfichier à ouvrir.xls"
Range("B5").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
A voir également:
- Copié collé vba ne fonctionne pas
- Copie cachée - Guide
- Super copie - Télécharger - Gestion de fichiers
- Copie écran samsung - Guide
- Copie disque dur - Guide
- Copie rapide - Télécharger - Gestion de fichiers
3 réponses
Bonjour
J'aurais plutôt écris ça
J'aurais plutôt écris ça
Private Sub Workbook_BeforeClose(Cancel As Boolean)
xxx = Range("B5")
Workbooks.Open Filename:= _
"D:\moncheminversmondossier\monfichier à ouvrir.xls"
Range("B5") = xxx
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
Bonjour Michel,
tout d'abord, Une nouvelle fois merci car tu m'avais déjà dépanné une précédente fois.
Effectivement, de cette façon, ça marche impec mais ce qui me manquerait c'est l'explication car mon exemple était une simplification de ma macro et, il se trouve que dans mon code, lorsque je veux sélectionner un onglet ou une cellule dans le fichier ouvert par la macro, celle ci s'arréte. J'ai essayé des activates pensant que le probléme venait de là , mais pas moyen .
voici mon code simplifié qui bloque de nouveau:
et le pourquoi stp
tout d'abord, Une nouvelle fois merci car tu m'avais déjà dépanné une précédente fois.
Effectivement, de cette façon, ça marche impec mais ce qui me manquerait c'est l'explication car mon exemple était une simplification de ma macro et, il se trouve que dans mon code, lorsque je veux sélectionner un onglet ou une cellule dans le fichier ouvert par la macro, celle ci s'arréte. J'ai essayé des activates pensant que le probléme venait de là , mais pas moyen .
voici mon code simplifié qui bloque de nouveau:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
xxx = Range("B5")
Workbooks.Open Filename:= _
"D:\moncheminversmondossier\monfichier à ouvrir.xls"
Range("B5") = xxx
Sheets("feuil33").Select 'ça ça passe pas??
Range("b4").select 'ça ça passe pas non plus??
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
et le pourquoi stp
Bon,jour,
mon exemple était une simplification de ma macro
c'est justement ce qu'il ne faut pas faire quand tu demandes de l'aide sur un code: un code est unique et valable que pour un besoin précis et tu dois expliquer clairement et complètement ce que tu veux faire en tenant compte des conditions.
actuellement on écrit la valeur de xxx dans la cellule B5 de la feuille active au moment de l'ouverture de ton classeur (et c'est + qu'imprudent;, tu dois préciser la feuille où tu mets xxx)
ensuite suivant ton code , tu sélectionnnes la feuille 33, cellule B4 du classeur dans lequel tu as copié xxx ( a la prochaine ouverture xxx sera écrit en B4 de cette feuille si personne ne travaille sur ce classeur en allant sur une autre feuille )
mais je ne peux rien te dire de plus (ta simplification)
mon exemple était une simplification de ma macro
c'est justement ce qu'il ne faut pas faire quand tu demandes de l'aide sur un code: un code est unique et valable que pour un besoin précis et tu dois expliquer clairement et complètement ce que tu veux faire en tenant compte des conditions.
actuellement on écrit la valeur de xxx dans la cellule B5 de la feuille active au moment de l'ouverture de ton classeur (et c'est + qu'imprudent;, tu dois préciser la feuille où tu mets xxx)
ensuite suivant ton code , tu sélectionnnes la feuille 33, cellule B4 du classeur dans lequel tu as copié xxx ( a la prochaine ouverture xxx sera écrit en B4 de cette feuille si personne ne travaille sur ce classeur en allant sur une autre feuille )
mais je ne peux rien te dire de plus (ta simplification)