Export de données dans la seconde ligne d'un nouveau classeur

Horusbk

XLDnaute Junior
Bonjour,

Je crée une macro permettant d'exporter les données d'un de nos classeur. Cela nous permet d'avoir dans un nouveau classeur une extraction que nous pouvons modifier, filtrer et utiliser selon nos besoins sans que cela affecte le fichier principal.

Je rencontre une difficulté dans cet export. Je souhaite copier tout le contenu de chaque colonne (de la colonne A à M en l’occurrence) sauf les trois premières lignes qui correspondent à l'en-tête de mon fichier. J'ai déjà un bout de code mais ce dernier ne permet pas :

- De sélectionner tout le contenu de mes colonnes à partir de la ligne n° 3 (les données voulues commencent à cette ligne)
- De coller ces valeurs dans un nouveau classeur sans avoir un message d'erreur qui m'indique que le format des cellules copiées est incompatible avec les cellules de destination

VB:
Sub ExportDATA()

    'On sélectionne les données à exporter
    Columns("A:M").Select
    Selection.Copy
  
    'Création d'un nouveau classeur
    Workbooks.Add
    Cells.Select
  
    'Ajout d'étiquettes de colonne dans ce nouveau classeur
    Range("A1") = "Date"
    Range("B1") = "Heure"
    Range("C1") = "Num Commande"
    Range("D1") = "Num Client"
    Range("E1") = "ID Produit"
    Range("F1") = "ID Commande"
    Range("G1") = "Item 1"
    Range("H1") = "Item 2"
    Range("I1") = "Délai expédition"
    Range("J1") = "Butée expédition"
    Range("K1") = "Butée respectée"
    Range("L1") = "Date et Heure"
    Range("M1") = "Commentaires"
  
    'On colle les données copiées à partir de la seconde ligne en dessous des étiquettes de colonne
    Range("A2").Select
    ActiveSheet.Paste
  
End Sub

Je vous joins également mon fichier test, la macro se lance en appuyant sur le bouton 'export'.

Merci d'avance pour votre aide :)
Baptiste K.
 
Dernière édition:

sousou

XLDnaute Barbatruc
Bonjour
voilà une solution
Sub ExportDATA()
With Sheets("suivi")
'zone données à copier
Set zone = .Range(.Cells(3, 1), .Cells(.Cells(.UsedRange.Count, 1).End(xlUp).Row, 13))
zone.Select
'Création d'un nouveau classeur
Set fich = Workbooks.Add
zone.Copy fich.Sheets(1).Range("a2")

'Ajout d'étiquettes de colonne dans ce nouveau classeur
.Rows(2).Copy fich.Sheets(1).Rows(1)
End With
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 184
Messages
2 086 008
Membres
103 088
dernier inscrit
Psodam