Copie de donnée dans un champs variable

Bonjour tout le monde !

J'ai un problème de copie de donnée dans une macro

Est ce que qq'un pourrait me dire qu'elle est l'erreur dans ce code svp ?

Private Sub CommandButton7_Click()
fsn = Worksheets("Import SN data").Range("A" & Rows.Count).End(xlUp).Row
fbn = Worksheets("Import Batch data").Range("A" & Rows.Count).End(xlUp).Row
fpd = Worksheets("production data").Range("A" & Rows.Count).End(xlUp).Row
Sheets("production data").Range("A2:F" & fsn).Copy Destination:=Sheets("Export SN data").Range("A2")
Sheets("production data").Range(Range("A" & fsn + 1), Range("F" & fpd)).Copy Destination:=Sheets("Export Batch data").Range("A2")
End Sub

Mon but est simplement de coller la plage (Afsn+1 : Ffpd) dans le document export batch data. Il n'y a que la dernière instruction qui ne fonctionne pas...

Si qq'un a une idée !

Merci d'avance !

Bonjour,

Quelles données sont dans les variables fsn, fbn et fpd ?

Tu n'aurais pas une maquette à fournir ?

Bonjour

Que veux-tu faire dans la dernière instruction ?

Incompréhensible par rapport l'instruction précédente

Cordialement

Bonjour,

y a-t-il un message d'erreur ou rien ne se passe ?

Ce sont juste les variables qui servent à compter le nombre de ligne dans mes feuilles, tous les nombres commançant pas f représentent la fin de la feuille appelée.

Par exemple fsn est le nombre de ligne de ma feuille sn ; idem pour fbn et fpd.

Je pense que le problème vient du fait que je veux utiliser deux variables.

car cette ligne fonctionne :

Sheets("production data").Range("A2:F" & fsn).Copy Destination:=Sheets("Export SN data").Range("A2")

alors que celle ci non :

Sheets("production data").Range(Range("A" & fsn + 1), Range("F" & fpd)).Copy Destination:=Sheets("Export Batch data").Range("A2")

J'ai aussi essayé :

Sheets("production data").Range("A" & fsn + 1 " :F" & fpd)).Copy Destination:=Sheets("Export Batch data").Range("A2")

Mais sans succès...

Merci d'avoir été si rapide !

re

Sans réponse à ma question et sur base de ta dernière ligne, comme ceci alors :

Sheets("production data").Range("A" & fsn + 1 & ":F" & fpd).Copy Destination:=Sheets("Export Batch data").Range("A2")

Crdlt

Le message d'erreur est Compile error : argument not optional

J'ai 5 pages excel, les deux premières sont assemblées dans la 3èmes feuilles et la macro que j'essai de faire doit reséparer le feuille3 pour en à nouveau obtnir des copies des feuilles 1 et 2.

Certaines informations ont changé entre temps c'est pourquoi je fait la séparation comme ca, cela me permet de garder les anciennes listes et les nouvelles mises à jour

Merci pour l'aide !


Merci Dan !

Je ne savais pas qu'on pouvait compiler plusieurs & !

C'est exactement ce qu'il me manquait !

Une fois de plus ce forum est génial ! Merci la communanuté pour avoir créé un site d'entre aide aussi performant !

Edit Dan.

Le code complet pourrait être

Dim fsn As Integer, fbn As Integer, fpd As Integer
fsn = Worksheets("Import SN data").Range("A" & Worksheets("Import SN data").Rows.Count).End(xlUp).Row
fbn = Worksheets("Import Batch data").Range("A" & Worksheets("Import Batch data").Rows.Count).End(xlUp).Row
fpd = Worksheets("production data").Range("A" & Worksheets("production data").Rows.Count).End(xlUp).Row
With Sheets("production data")
    .Range("A2:F" & fsn).Copy Destination:=Sheets("Export SN data").Range("A2")
    .Range("A" & fsn + 1 & ":F" & fpd).Copy Destination:=Sheets("Export Batch data").Range("A2")
End With

Crdlt

Ce code est plus efficace pour la suite !

Merci et bonne journée !

A bientot

Rechercher des sujets similaires à "copie donnee champs variable"