Renvoi de valeurs entre tableaux
Bonjour à tous.
Je rencontre un soucis avec ma macro qui envoi des données d'un tableau à un autre.
je renvoie 13 données.
Les lignes qui fonctionnent :
1, 2, 4, 5, 6, 7, 9, 10
Les lignes qui ne renvoient pas leur valeurs :
3, 8, 11, 12 et 13
Je vous mets ci-dessous mon code, soyez indulgent, je débute...
Merci d'avance pour votre aide
Guillaume
Private Sub CommandButton2_Click()
te = Sheets("Dossiers Garanties").Range("B:B").Find(TextBox1.Value, Range("B65536"), , , xlByRows).Row
td = Sheets("Suivi Dossiers").Range("B:B").Find(TextBox1.Value, Range("B65536"), , , xlByRows).Row
Application.Workbooks.Open "I:\_ACTIVITE_HEU\_INGENIERIE\_SAV\_GMF\FG_MODELE V2.xlsm", ReadOnly:=True
Application.ScreenUpdating = False
Workbooks("Suivi Activite APV.xlsm").Sheets(2).Activate
'1 N° DE DOSSIER
Workbooks("FG_MODELE V2.xlsm").Sheets("Sheet1").Range("G2").Value = Sheets("Dossiers Garanties").Cells(te, 2).Value
'2 AFFAIRE SUIVIE PAR
Workbooks("FG_MODELE V2.xlsm").Sheets("Sheet1").Range("C4").Value = Sheets("Dossiers Garanties").Cells(te, 3).Value
'3 RETOUR PIECE
Workbooks("FG_MODELE V2.xlsm").Sheets("Sheet1").Range("G4").Value = Sheets("Dossiers Garanties").Cells(te, 18).Value
'4 VEHICULE
Workbooks("FG_MODELE V2.xlsm").Sheets("Sheet1").Range("C8").Value = Sheets("Dossiers Garanties").Cells(te, 8).Value
'5 TRANSFO/PROJET
Workbooks("FG_MODELE V2.xlsm").Sheets("Sheet1").Range("C9").Value = Sheets("Dossiers Garanties").Cells(te, 9).Value
'6 N° CHASSIS
Workbooks("FG_MODELE V2.xlsm").Sheets("Sheet1").Range("C10").Value = Sheets("Dossiers Garanties").Cells(te, 6).Value
'7 DATE MISE EN CIRCULATION
Workbooks("FG_MODELE V2.xlsm").Sheets("Sheet1").Range("C11").Value = Sheets("Suivi Dossiers").Cells(td, 8).Value
'8 NUMERO ORDRE DE REPARATION
Workbooks("FG_MODELE V2.xlsm").Sheets("Sheet1").Range("C12").Value = Sheets("Dossiers Garanties").Cells(te, 7).Value
'9 DATE DEMANDE
Workbooks("FG_MODELE V2.xlsm").Sheets("Sheet1").Range("G8").Value = Sheets("Suivi Dossiers").Cells(td, 3).Value
'10 AFFAIRE-CONTACT
Workbooks("FG_MODELE V2.xlsm").Sheets("Sheet1").Range("G9").Value = Sheets("Suivi Dossiers").Cells(td, 5).Value
'11 INCIDENT
Workbooks("FG_MODELE V2.xlsm").Sheets("Sheet1").Range("C15").Value = Sheets("Dossiers Garanties").Cells(te, 10).Value
'12 ACTION
Workbooks("FG_MODELE V2.xlsm").Sheets("Sheet1").Range("C18").Value = Sheets("Dossiers Garanties").Cells(te, 11).Value
'13 ACCORD MAIN DOEUVRE
Workbooks("FG_MODELE V2.xlsm").Sheets("Sheet1").Range("C34").Value = Sheets("Dossiers Garanties").Cells(te, 15).Value & " H en T1"
Workbooks("FG_MODELE V2.xlsm").Sheets(1).Activate
Application.ScreenUpdating = True
Unload Me
End
End SubBonjour Guillaume,
Je te propose le code VBA suivant :
Option Explicit
Private Sub CommandButton2_Click()
Dim td&, te&
Application.ScreenUpdating = False
td = Worksheets("Suivi Dossiers").Range("B:B").Find(TextBox1.Value, Range("B65536"), , , xlByRows).Row
Workbooks.Open "I:\_ACTIVITE_HEU\_INGENIERIE\_SAV\_GMF\FG_MODELE V2.xlsm", ReadOnly:=True
Worksheets("Sheet1").Select ' feuille "Sheet1", du classeur qu'on vient d'ouvrir
With Workbooks("Suivi Activite APV").Worksheets("Dossiers Garanties")
te = .Range("B:B").Find(TextBox1.Value, Range("B65536"), , , xlByRows).Row
[G2] = .Cells(te, 2) ' 1 N° DE DOSSIER
[C4] = .Cells(te, 3) ' 2 AFFAIRE SUIVIE PAR
[G4] = .Cells(te, 18) ' 3 RETOUR PIECE
[C8] = .Cells(te, 8) ' 4 VEHICULE
[C9] = .Cells(te, 9) ' 5 TRANSFO/PROJET
[C10] = .Cells(te, 6) ' 6 N° CHASSIS
[C11] = .Cells(td, 8) ' 7 DATE MISE EN CIRCULATION
[C12] = .Cells(te, 7) ' 8 NUMERO ORDRE DE REPARATION
[G8] = .Cells(td, 3) ' 9 DATE DEMANDE
[G9] = .Cells(td, 5) ' 10 AFFAIRE-CONTACT
[C15] = .Cells(te, 10) ' 11 INCIDENT
[C18] = .Cells(te, 11) ' 12 ACTION
[C34] = .Cells(te, 15) _
& " H en T1" ' 13 ACCORD MAIN DOEUVRE
End With
Worksheets(1).Select ' inutile si la 1ère feuille du classeur est "Sheet1"
Application.ScreenUpdating = True
Unload Me
End Sub⚠ Si la feuille "Suivi Dossiers" est dans un autre classeur que le classeur actif (lors du lancement de la macro), tu dois
alors le préciser : td = Workbooks("Classeur X").Worksheets("Suivi Dossiers").Range("B:B").Find( ...
⚠ J'ai supposé que la feuille "Dossiers Garanties" est dans le classeur "Suivi Activite APV" ;
dans le cas contraire, tu dois adapter With Workbooks("Suivi Activite APV")
Vérifie bien si ça marche correctement pour toutes les lignes que tu veux.
Merci de me dire si ça te convient.
Cordialement