copier les cellules d'aun fichier à l'autre

  • Initiateur de la discussion Initiateur de la discussion salekh
  • 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 !

S

salekh

Guest
Bonjour à tous!
je suis débutant en VBA et j'arrive pas à faire un truc sur excel.
mon problème est suivant: j'ai deux fichier excel, l'un c'est "lancement de production" et l'autre "gestion de production". je veux que les données qu'on entre dans le tableau "lancement de production" se copient automatiquement dans les cellules de référence du tableau "produit" dans le fichier "gestion de production".
vous pouvez trouver dans les PJ ces deux workbooks.
Merci de votre aide!!!!!!!!!!!
 

Pièces jointes

Re : copier les cellules d'aun fichier à l'autre

Bonsoir et bienvenue sur le forum,
Recopier les données ne présente aucun problème, en revanche, il faudrait que tu réfléchisses sur "se copient automatiquement".
Et d'abord, comment renseigne-t-on le lancement de production ? Cela aura des incidences sur la programmation, en particulier sur les sécurités à mettre en place et le choix de l'événement qui va provoquer la recopie.
- les données sont-elles susceptibles d'être modifiées ?
- les données sont-elles écrites ligne par ligne ?
- est-on susceptible de faire des copier/coller pour reproduire d'autres lignes ?
- le N° de lancement qui sera la référence est-il incrémenté automatiquement ?
- etc
Investir dans une réflexion préalable pour bien définir le besoin est indispensable pour pouvoir programmer efficacement et que l'utilisation des fichiers soit maîtrisée par la suite
Il n'y a pas eu de réponse car le besoin exprimé est trop flou.
A+
 
Dernière édition:
Re : copier les cellules d'aun fichier à l'autre

Bonjour, Hippolite,
tout d'abord, merci d'avoir s'intéressé à mon problème! et merci pour tes conseils concernant la définition de besoin! c'est juste manque d’expérience.
En fait, j'ai trouvé une solution. voici le macro:

Sub Copying_A_2_X()

With lancement
cc = 1
Do While Not IsEmpty(.Cells(1, cc))
If UCase(.Cells(1, cc)) = UCase("N° de lancement") Then
cc_Out_N_Lancement = cc
ElseIf UCase(.Cells(1, cc)) = UCase("Modèle") Then
cc_Out_Modele = cc
ElseIf UCase(.Cells(1, cc)) = UCase("Pointure") Then
cc_Out_Pointure = cc
ElseIf UCase(.Cells(1, cc)) = UCase("couleur") Then
cc_Out_Couleur = cc
ElseIf UCase(.Cells(1, cc)) = UCase("Quantité Entrée") Then
cc_Out_QTY = cc
ElseIf UCase(.Cells(1, cc)) = UCase("Date lancement") Then
cc_Out_Date_Fin = cc
End If
cc = cc + 1
Loop
End With

With produit
cc = 1
Do While Not IsEmpty(.Cells(1, cc))
If UCase(.Cells(1, cc)) = UCase("N° de lancement") Then
cc_In_N_Lancement = cc
ElseIf UCase(.Cells(1, cc)) = UCase("Modèle") Then
cc_In_Modele = cc
ElseIf UCase(.Cells(1, cc)) = UCase("Pointure") Then
cc_In_Pointure = cc
ElseIf UCase(.Cells(1, cc)) = UCase("couleur") Then
cc_In_Couleur = cc
ElseIf UCase(.Cells(1, cc)) = UCase("Quantité Entrée") Then
cc_In_QTY = cc
ElseIf UCase(.Cells(1, cc)) = UCase("Date") Then
cc_In_Date_Fin = cc
End If
cc = cc + 1
Loop
End With

produit.Activate

rnEnd_Produit = Cells(1000000, cc_In_N_Lancement).End(xlUp).Row
rc_Produit = rnEnd_Produit + 1

lancement.Activate

rnEnd_Lancement = Cells(1000000, cc_Out_N_Lancement).End(xlUp).Row

For rc_Lancement = 2 To rnEnd_Lancement
If Not IsEmpty(Cells(rc_Lancement, cc_Out_N_Lancement)) Then
produit.Cells(rc_Produit, cc_In_N_Lancement) = Cells(rc_Lancement, cc_Out_N_Lancement)
produit.Cells(rc_Produit, cc_In_Modele) = Cells(rc_Lancement, cc_Out_Modele)
produit.Cells(rc_Produit, cc_In_Pointure) = Cells(rc_Lancement, cc_Out_Pointure)
produit.Cells(rc_Produit, cc_In_Couleur) = Cells(rc_Lancement, cc_Out_Couleur)
produit.Cells(rc_Produit, cc_In_QTY) = Cells(rc_Lancement, cc_Out_QTY)
produit.Cells(rc_Produit, cc_In_Date_Fin) = Cells(rc_Lancement, cc_Out_Date_Fin)
rc_Produit = rc_Produit + 1
Else
Rows(rc_Lancement).Interior.Color = 255
End If
Next rc_Lancement

If Not IsEmpty(Cells(2, cc_Out_N_Lancement)) Then
Range(Rows(2), Rows(rnEnd_Lancement)).ClearContents
End If

produit.Activate

End Sub

A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour