XL 2013 Copier/Coller vers un autre classeur

Dafaka7

XLDnaute Junior
Bonjour,

j'aimerais faire un copier/coller d'un classeur vers 4 autres selon une condition

1657870680903.png


Quand la colonne "Statut" est rouge alors dans la colonne "Niveau2" selon le choix que l'on fait ça ce colle sur un autre classeur. Les colonnes copiées seront de la colonne 1 à 10.

Merci d'avance
Cordialement
 

Pièces jointes

  • Format réunion GT 2022.xlsm
    716.7 KB · Affichages: 5
  • PDCA Production.xlsm
    21.2 KB · Affichages: 3

M.Ben

XLDnaute Junior
Bonjour Dafaka7,

J'ai un début de piste à te soumettre pour ton problème (je débute en VBA) avec le code suivant:
Sub CopierColler()

Dim i As Variant
Dim y As Variant
Dim LigneCopier As Variant
Dim LigneColler As Variant


i = Range("N19")
y = Range("O19")

If y = "Production" And i = 1 Then

Workbooks("Format réunion GT 2022.xlsm").Sheets("Plan d'action").Range("A19:J19").Copy _
Destination:=Workbooks("PDCA Production.xlsm").ActiveSheet.Range("A6:J6")

Else

MsgBox "Classeur inconnu"

End If

End Sub

J'ai réussi avec le copier/Coller que tu recherches.
Par contre il faut que ton classeur "Format réunion GT 2022" soit actif et que ton classeur "PDCA production" soit ouvert.

Le bout de code copie bien la ligne que j'ai défini (Colonne 1 à 10) et la colle dans l'autre classeur à l'emplacement qui lui est destinée.

Je pense qu'en utilisant une boucle ou quelque chose du genre tu dois pouvoir rendre le bout de programme plus fonctionnelle à ton besoin.

Surement que d'autres personnes plus expérimentés sauront soit corriger ou compléter ce début de réflexion, soit t'apporter une meilleur réponse.

Cordialement
 

M.Ben

XLDnaute Junior
Bonjour Dafaka7 et la communauté XLD,

Après quelques recherches et essais, j'ai pu optimiser la fonction du copier/coller vers un autre classeur.
Avec le code ci-dessous:
Sub Copier_coller()

'déclaration des variables
Dim Wk_Reunion As Workbook
Dim ws_Feuille1 As Worksheet
Dim wk_Production As Workbook
Dim ws_Feuille2 As Worksheet
Dim Der_ligne As Long
Dim Destination As String
Dim Statut As Integer
Dim Ligne_coller As Long

'définir les fichiers et les feuilles Excel
Set Wk_Reunion = ActiveWorkbook
Set ws_Feuille1 = Wk_Reunion.Worksheets("Plan d'action")
Set wk_Production = Application.Workbooks.Open("C:\Benoit\Feuilles calculs EXCEL\Feuille de calculs (avec macros)\Plan d'action\PDCA Production.xlsm") 'Modifier le chemin du fichier au besoin au besoin
Set ws_Feuille2 = wk_Production.Worksheets("PDCA")

'Identifier la dernière sur la feuille réunion
Der_ligne = ws_Feuille1.Cells(Rows.Count, 1).End(xlUp).Row

'Boucle sur les données
For i = 5 To Der_ligne
'Identifier la destination
Destination = ws_Feuille1.Cells(i, 15)
'Identifier le statut
Statut = ws_Feuille1.Cells(i, 14)
If Destination = "Production" And Statut = 1 Then
Ligne_coller = ws_Feuille2.Cells(Rows.Count, 1).End(xlUp).Row + 1
'Copier et coller la valeur dans une autre feuille
ws_Feuille1.Range(ws_Feuille1.Cells(i, 1), ws_Feuille1.Cells(i, 10)).Copy (ws_Feuille2.Cells(Ligne_coller, 1))
'Ferme le fichier et enregistre les modifications
wk_Production.Close (True)
End If

Next

End Sub
Cependant je rencontre un problème avec la ligne :
wk_Production.Close (True)
Si je ne la met pas, je n'ai aucun soucis. par contre quand je la met et que j'exécute ma macro j'ai un message d'erreur que je ne comprends pas.
Le message est le suivant:
Capture.JPG
.

Si une personne de la communauté saurait m'orienté, je serai preneur de vos remarques.
j'ai joint les fichiers (ils sont simplifiés par rapport à ceux d'origine).

Merci d'avance
 

Pièces jointes

  • Format réunion GT 2022.xlsm
    26.4 KB · Affichages: 2
  • PDCA Production.xlsm
    10.8 KB · Affichages: 2

Discussions similaires

Réponses
15
Affichages
425