VBA : problème avec la méthode Paste

  • Initiateur de la discussion Initiateur de la discussion __xD
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

__xD

XLDnaute Nouveau
Bonjour à tous,

Je souffre d'un petit souci avec la méthode Paste. J'essaie d'effectuer la même opération que beaucoup de gens : copier la feuille d'un classeur vers un autre classeur, et je voudrais maintenir le lien pour que si la feuille est modifiée dans un classeur, la modification soit effective dans le fichier d'origine.
Voici le code que j'utilise :
Code:
Sub AjoutAnnexe()

Dim classeurSource As Workbook, classeurDestination As Workbook
Set classeurDestination = ThisWorkbook
Set classeurSource = Application.Workbooks.Open(Application.GetOpenFilename(), , True)

classeurDestination.Activate
Sheets.Add After:=Sheets(Sheets.Count)
classeurSource.Sheets("Sheet1").Cells.Copy 
classeurDestination.Sheets(Sheets.Count).Paste Link:=True


classeurSource.Close False

End Sub

Le problème est le suivant : le programme bug, et me copie des 0 à la place de toutes les cellules vides 😕
Après réflexion, je pense que cela vient du fait que j'utilise Cells plutôt qu'une sélection précise de cellules pour la copie. Je voudrais qu'il copie les cellules qui contiennent une information et laisse les autres tranquilles 😀
Le problème est que le fichier à copier n'est pas fixe, parfois il peut contenir deux cellules, parfois une centaine (c'est l'utilisateur qui sélectionne au début de la macro).
Je débute en VBA et je ne sais donc pas comment procéder, ça ne doit pas être grand chose...
De plus, écrire Link:=True est-il suffisant pour maintenir le lien entre les deux fichiers ??

Merci de votre aide 🙂
 
Dernière édition:
Re : VBA : problème avec la méthode Paste

Re

Test OK ici
Code:
Sub AjoutAnnexe()
Dim classeurSource As Workbook, classeurDestination As Workbook
Set classeurDestination = ThisWorkbook
Set classeurSource = Application.Workbooks.Open(Application.GetOpenFilename(), , True)


With classeurDestination
    .Activate
    Sheets.Add After:=Sheets(Sheets.Count)
    classeurSource.Sheets(1).UsedRange.Copy
    .Sheets(Sheets.Count).Paste Link:=True
End With


classeurSource.Close False
End Sub
 
Re : VBA : problème avec la méthode Paste

Bonsoir,

Merci, cela fonctionne pour le rajout de l'annexe, mais il continue de me remplir les cellules inutiles par des zéros... 😕
Et de plus, j'ai changé une valeur dans l'onglet rajouté, mais la modification ne s'effectue pas dans le fichier d'origine... 🙁
 
Re : VBA : problème avec la méthode Paste

Re

__xD
Ne crois-tu pas qu'un fichier exemple (ici en l’occurrence deux fichiers exemples simplifiés) seraient dès à présent les bienvenus dans ton fil de discussion, non ?

Tu dois savoir qu'on peut joindre des fichiers sur le forum, non ?
 
Re : VBA : problème avec la méthode Paste

Je suis nouvelle ici, je n'ai pas l'habitude des forums et je n'y ai pas pensé 😱
 

Pièces jointes

Re : VBA : problème avec la méthode Paste

Re

Tu as beau être nouvelle, tu es censée savoir lire* LOL.

Merci pour les fichiers et bienvenue sur le forum.
Je repasse dans ton fil après ma séance TV du dimanche soir.

*: je fais référence aux conseils avisés qui s'affichent quand on créé une discussion sur le forum.
 
Re : VBA : problème avec la méthode Paste

Re

Fin de la séance TV, me revoilou... avec un biais ... en attendant mieux
Code:
Sub AjoutAnnexe()
Dim classeurSource As Workbook, classeurDestination As Workbook
Set classeurDestination = ThisWorkbook
Set classeurSource = Application.Workbooks.Open(Application.GetOpenFilename(), , False, , , , , , , True)
With classeurDestination
    .Activate
    Sheets.Add After:=Sheets(Sheets.Count)
    classeurSource.Sheets(1).UsedRange.Copy
     Sheets(Sheets.Count).Paste Link:=True
End With
ActiveWindow.DisplayZeros = False
classeurSource.Close False
End Sub
 
Re : VBA : problème avec la méthode Paste

Bonjour bonjour,

Je vois, astuce toute bête mais qui a son efficacité, merci beaucoup 🙂
Reste à voir si l'utilisateur aura besoin d'ajouter des fichiers contenant des zéros dans certaines cellules... Si oui, c'est reparti pour un tour 😛
 
Re : VBA : problème avec la méthode Paste

Bonjour __xD, Staple1600,

Un essai brut de décoffrage pour traiter les cellules vides et les zéros.
Extraire le répertoire @Test du fichier joint puis ouvrir le fichier cible.xlsm.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
639
Réponses
5
Affichages
771
Réponses
17
Affichages
2 K
Retour