[Résolu] Copier/coller avec mise en forme VBA - Problèmes !

nicolas1984

XLDnaute Nouveau
Bonjour à tous,

J'ai quelques difficultés à recopier des cellules avec mise en forme d'un classeur à un autre en VBA.

Voici mon code :

Code:
FeuilleSource.Rows("7:" & (lpp + 6)).Select
Selection.Copy
Feuille.Range("A1").Select
ActiveSheet.Paste
Où :
  • lpp est calculé et est de toute façon >1
  • FeuilleSource est défini par Set FeuilleSource = source.Sheets(magasin) et Set source = Excel.Workbooks("EtiquettesLogistique.xlsm") (magasin est bien défini lui aussi, c'est un nom d'onglet)
  • De même Feuille est bien défini (je peux écrire dedans sans problème avec .Range() par exemple), mais dans un autre classeur créé par la macro

J'ai essayé une quantité incroyable de méthodes, le copier/coller semble la plus adaptée (j'aurais préféré un recopiage direct du style FeuilleSource.Rows("7:" & (lpp + 6)).Copy Feuille.Rows("1:1")). Mais malheureusement ça ne fonctionne toujours pas, rien n'est copié dans la destination !

L'un d'entre vous aurait-il une idée svp ?
Là je tourne vraiment en rond !

Merci d'avance :)
 
Dernière édition:

nicolas1984

XLDnaute Nouveau
Re : Copier/coller avec mise en forme VBA - Problèmes !

Bonjour,

Merci de ta réponse. Ce qui ne fonctionne pas, c'est que rien n'est copié dans la cellule de destination (je le disais bien ;)).

Je ne peux pas insérer le fichier (y'a du confidentiel dedans sorry), par contre voici la partie du code concerné :
Code:
Sub CreerEtiquettes()

Dim App As Excel.Application
Dim Classeur As Excel.Workbook
Dim Feuille, FeuilleSource, FeuilleLog As Excel.Worksheet
Dim magasin, produit, ref, nom_fichier, gencode, err, m(6), r(6), p(6), c(6), g(6), n(6), nc(6), d(6) As String
Dim source As Workbook
Dim commande, nb_colis, i, j, pcb, lpp, nbepp As Integer
Dim date_envoi As Date
Dim Wbk As Excel.Workbook

' Initialisation des variables
Set source = Excel.Workbooks("EtiquettesLogistique.xlsm")
Set FeuilleSource = source.Sheets("Informations")

'Création du classeur résultat
nom_fichier = ActiveWorkbook.Path & "\Etiquettes_" & magasin & "_" & commande & "_" & produit & ".xlsx"
Set App = CreateObject("Excel.Application")
App.DisplayAlerts = False
App.SheetsInNewWorkbook = 1
Set Classeur = App.Workbooks.Add
' Fermeture du fichier s'il existe déjà
For Each Wbk In Excel.Workbooks
    If UCase(Wbk.Path & "\" & Wbk.Name) = UCase(nom_fichier) Then
        Wbk.Close False
    End If
Next
' Enregistrement
Classeur.SaveAs (nom_fichier)
App.Visible = True
Set Feuille = Classeur.Worksheets(1)
Feuille.Name = "Etiquettes"
App.SaveWorkspace

lpp = FeuilleSource.Range("I1").Value
nbepp = FeuilleSource.Range("I2").Value

' Recopie du template
FeuilleSource.Rows("7:" & (lpp + 6)).Select
Selection.Copy
Feuille.Range("A1").Select
ActiveSheet.Paste
App.SaveWorkspace

End Sub
 

Discussions similaires

Réponses
11
Affichages
676

Statistiques des forums

Discussions
312 282
Messages
2 086 762
Membres
103 389
dernier inscrit
DEDE86