Macro copier coller

Bonjour,

J'ai une macro comme qui copie des cellule d'un classeur dans un autre classeur le problem ca ne marche pas,

il me dit:

La méthode select de la classe range a échouée

voici le code,

il bloque su la ligne: Range("A1").Select

Private Sub CommandButton1_Click()

Workbooks.Open Filename:="C:\zprg mauridul\zContrat.xlsx"

Windows(".Planning Mauridul.xlsm").Activate

Sheets("contrat").Select

Range("BI10:BJ16").Select

Range("BJ16").Activate

Selection.Copy

Windows("zContrat.xlsx").Activate

Sheets("Feuil2").Select

Range("A1").Select

ActiveSheet.Paste

End Sub

Deja merci, sans vous je serais vraiment dans les choux

Salut Ambroise

Saches, qu'en VBA nul est besoin de sélectionner les objets pour travailler dessus

Essaye avec ce code

Private Sub CommandButton1_Click()
  Dim WbkContrat As Workbook
  ' Définir l'objet WbkContrat
  Set WbkContrat = Workbooks.Open(Filename:="C:\zprg mauridul\zContrat.xlsx")
  ' Copier la cellule de ce classeur dans celui des contrat
  ThisWorkbook.Sheets("contrat").Range("BI10:BJ16").Copy _
      Destination:=WbkContrat.Sheets("Feuil2").Range("A1")
End Sub

A+

Merci, il n'y a pas d'erreur mais rien ne s'affiche dans la classeur de destination sauf la case BI10 qui se mets en blanc??

C'est bon ça marche, il fallait pas mettre

ThisWorkbook.Sheets("contrat").Range("BI10:BJ16").Range("BJ16").Copy _

mais

ThisWorkbook.Sheets("contrat").Range("BI10:BJ16").Copy _

Par contre car j'ai toujours un hic, je voudrais la valeur et non copier les formule??

Re,

Dans ce cas il faut utiliser PasteSpecial

Private Sub CommandButton1_Click()
  Dim WbkContrat As Workbook
  ' Définir l'objet WbkContrat
 Set WbkContrat = Workbooks.Open(Filename:="C:\zprg mauridul\zContrat.xlsx")
  ' Copier la cellule de ce classeur dans celui des contrat
 ThisWorkbook.Sheets("contrat").Range("BI10:BJ16").Copy
  WbkContrat.Sheets("Feuil2").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
      SkipBlanks:=False, Transpose:=False
End Sub

A+

Exacte Merci beaucoup c'est exactement ce que je veux

Je suis en train de pinailler,

Je voudrais une fois ce classeur ouvert et les donner saisie comme c'est le cas pour le moment, cette même feuille s'enregistre dans un chemin donner mais a un nom de cellule défini.

par exemple C:\zprg planning\(cellule A1).xlsx

par contre je ne veux pas de macro dans ce classeur, seulement dans le classeur source.

Merci au pro, car je ne comprend rien a la VBA

Bonjour Ambroise

Merci de joindre les fichiers STP, difficile comme ça sans rien

A+

Désolé Je vous passe les fichier sans les donne merci

22source.xlsm (66.66 Ko)
24xlsx.xlsx (43.42 Ko)

désolé, le vrais nom du fichier envoyé xlsx est zContract (NE PAS SUPPRIMER)

Par la même occasion si il y a possibilité de faire l'enregistrement en PDF seulement les 3 1er feuille et pas la 4iem, mais ce n'est pas très important

Je sais j'en demande beaucoup.

Re,

Ce que je ne comprends pas dans tes fichiers, c'est pourquoi utiliser des fichiers similaires

pour simplement transposer des données identiques de l'un dans l'autre

Sinon pour les boutons, voici le code

Private Sub CommandButton1_Click()
  Dim sPath As String, sFic As String
  Dim WbkContrat As Workbook
  ' Mémorisé les valeurs nécessaires pour l'enregistrement
  sPath = ThisWorkbook.Path & "\"
  sFic = ThisWorkbook.Sheets("contrat").Range("BK6") & ".xlsx"
  ' Définir l'objet WbkContrat
  Set WbkContrat = Workbooks.Open(Filename:="C:\Users\" & Environ("username") & "\Google Drive\Planning Mauridul\Contrat\zContrat (NE PAS SUPPRIMER).xlsx")
  ' Copier la cellule de ce classeur dans celui des contrat
  ThisWorkbook.Sheets("contrat").Range("AZ1:BF132").Copy
  WbkContrat.Sheets("Feuil1").Range("AZ1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                                                        SkipBlanks:=False, Transpose:=False
  ' Sauvegarder le classeur "zContrat" au format Excel sous le nom définit
  WbkContrat.SaveAs sPath & sFic
  ' Fermer le classeur enregistré
  WbkContrat.Close
  ' Effacer les variables objet
  Set WbkContrat = Nothing
End Sub

Private Sub CommandButton2_Click()
  Dim sPath As String, sFic As String
  Dim WbkContrat As Workbook
  ' Mémorisé les valeurs nécessaires pour l'enregistrement
  sPath = ThisWorkbook.Path & "\"
  sFic = ThisWorkbook.Sheets("contrat").Range("BK6") & ".pdf"
  ' Définir l'objet WbkContrat
  Set WbkContrat = Workbooks.Open(Filename:="C:\Users\" & Environ("username") & "\Google Drive\Planning Mauridul\Contrat\zContrat (NE PAS SUPPRIMER).xlsx")
  ' Copier la cellule de ce classeur dans celui des contrat
  ThisWorkbook.Sheets("contrat").Range("AZ1:BF132").Copy
  WbkContrat.Sheets("Feuil1").Range("AZ1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                                                        SkipBlanks:=False, Transpose:=False
  ' Sauvegarder le classeur "zContrat" au format PDF sous le nom définit
  WbkContrat.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & sFic, _
      Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=True
  ' Fermer le classeur enregistré
  WbkContrat.Close
  ' Effacer les variables objet
  Set WbkContrat = Nothing
End Sub

A+

Génial, juste 2 petite chose,

sur le bouton 2, j'ai vu qu'il ouvre l'autre fichier excel et qu'il enregistre celui ci en PDF, par contre quand il ferme le fichier excel, il me demande voulez vous enregistrer les modification, ce qu'il me demande pas quand je clic sur le boutons 1 ce serait bien qu'il le demande pas.

sinon comment change le chemin d’accès pour l'enregistrement, il devrait s'enregistre dans le même dossier que zContrat (NE PAS SUPPRIMER) et pas dans dans le dossier du classeur source?

Sinon c'est Parfait encore merci

Pourquoi j’utilise des fichiers similaires

pour simplement transposer des données identiques de l'un dans l'autre,

car dans le premier fichier, il y a plein d'autre feuille donc la base de donner que je ne veux pas envoyer a certaine personne donc je recopie celle ci pour avoir un fichier qui n'est pas actualiser avec la base de donner.

Re,

Ambroise a écrit :

Pourquoi j’utilise des fichiers similaires

pour simplement transposer des données identiques de l'un dans l'autre,

car dans le premier fichier, il y a plein d'autre feuille donc la base de donner que je ne veux pas envoyer a certaine personne donc je recopie celle ci pour avoir un fichier qui n'est pas actualiser avec la base de donner.

C'est bien ce que je pensais

Dans ce cas là, perso, j'ai un bouton qui :

1) copie la feuille dans un nouveau classeur

2) fait un copier/coller valeurs dans ce nouveau classeur (pour supprimer les liaisons)

3) enregistre ce nouveau classeur au bon endroit

A+

Merci encore,

Sinon tu as vu le message juste en dessus, c'est bon j'ai trouver pour le chemin d’accès, par contre pour que le message la classeur a été modifier voulez vous enregistrer, je voudrais bien le supprimer car que j'enregistre ou pas, c'est égale mais cela peut preter a confusion et y a t'il possibilité de fermer le fichier PDF a la fin?

encore un grand merci pour cette aide précieuse

Re,

Pour sauvegarder le classeur et ne pas avoir le message

ThisWorkbook.Save

Pour ne pas avoir le fichier PDF ouvert

OpenAfterPublish:=False

A+

Merci tous marche comme je veux a +

Rechercher des sujets similaires à "macro copier coller"