Copier des données vers un onglet via bouton macro

ordaz75

XLDnaute Nouveau
Bonjour,

Je sollicite votre aide pour mon fichier professionnel.

Par l'intermédiaire d'une macro j'aimerais que lorsqu’une immatriculation figure sur les 2 onglets « TRACABILITE » et « MAJ » que les informations manquante dans l’onglet TRACABILITE soit complétées.

A travers un bouton dans l'onglet MAJ, je souhaiterais que la macro recherche si dans l'onglet TRACABILITE l'immatriculation y figure et si oui qu'elle recopie les données se trouvant dans les colonnes de l’onglet MAJ.

Les colonnes à recopier sont les suivantes :

Colonne C de l'onglet MAJ à recopier en colonne H de l'onglet TRACABILITE
Colonne G de l'onglet MAJ à recopier en colonne D de l'onglet TRACABILITE
Colonne J de l'onglet MAJ à recopier en colonne R et T de l'onglet TRACABILITE
Colonne k de l'onglet MAJ à recopier en colonne S de l'onglet TRACABILITE

Merci d’avance pour votre aide
 

Pièces jointes

  • traçabilité 2014 test v1.xlsm
    125.1 KB · Affichages: 37
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Copier des données vers un onglet via bouton macro

Bonjour Yaloo, Ordaz ,

une syntaxe de ce gout serait de meilleur alloit

Code:
Sub MAJ()
Dim i As Long
Dim Trouve As Range
Dim valeur_recherchee As String

With Sheets(1)
'Suppression de ligne dans "PORTEFEUILLE LIVRABLE" si "N° CAR" n'existe pas dans "Fichier source de MAJ"
For i = .Range("N" & Rows.Count).End(xlUp).Row To 2 Step -1
  If Application.CountIf(Sheets(2).Columns("L"), .Range("N" & i).Value) = 0 Then
    .Range("N" & i).EntireRow.Delete
  End If
Next i
End With
For i = 2 To Sheets(2).Range("L65536").End(xlUp).Row
  valeur_recherchee = Sheets(2).Range("L" & i)
  With Sheets(1)
    Set Trouve = .Columns("N").Find(what:=valeur_recherchee, LookIn:=xlValues, lookAt:=xlWhole)
    If Not Trouve Is Nothing Then
      ligne = Trouve.Row
      .Range("O" & ligne) = Sheets(2).Range("K" & i)
      .Range("R" & ligne) = Sheets(2).Range("N" & i)
      .Range("S" & ligne) = Sheets(2).Range("O" & i)
      .Range("H" & ligne) = Sheets(2).Range("AK" & i)
      .Range("P" & ligne) = Sheets(2).Range("AO" & i)
    End If
  End With
End Sub
 

ordaz75

XLDnaute Nouveau
Re : Copier des données vers un onglet via bouton macro

Merci de ta réponse.

La macro figurant déjà sur mon fichier est erroné... elle me supprime des lignes etc...

Je voulais refaire une macro plus "propre" avec simplement les conditions cités dans mon premier message.
 

camarchepas

XLDnaute Barbatruc
Re : Copier des données vers un onglet via bouton macro

ok ,

les conditions :

Colonne C de l'onglet MAJ à recopier en colonne H de l'onglet TRACABILITE
Colonne G de l'onglet MAJ à recopier en colonne D de l'onglet TRACABILITE
Colonne J de l'onglet MAJ à recopier en colonne R et T de l'onglet TRACABILITE
Colonne k de l'onglet MAJ à recopier en colonne S de l'onglet TRACABILITE

le code
Code:
Sub MAJ()
 Dim i As Long
 Dim Trouve As Range
 Dim valeur_recherchee As String
 
 For i = 2 To Sheets("MAJ").Range("L" & rows.count).End(xlUp).Row
   valeur_recherchee = Sheets("MAJ").Range("L" & i)
   With Sheets(TRACABILITE)
     Set Trouve = .Columns("N").Find(what:=valeur_recherchee, LookIn:=xlValues, lookAt:=xlWhole)
     If Not Trouve Is Nothing Then
       ligne = Trouve.Row
       .Range("H" & ligne) = Sheets("MAJ").Range("C" & i)
       .Range("D" & ligne) = Sheets("MAJ").Range("G" & i)
       .Range("R" & ligne) = Sheets("MAJ").Range("J" & i)
       .Range("T" & ligne) = Sheets("MAJ").Range("J" & i)
       .Range("S" & ligne) = Sheets("MAJ").Range("K" & i)
     End If
   End With
 End Sub
 

ordaz75

XLDnaute Nouveau
Re : Copier des données vers un onglet via bouton macro

j'ai une erreur lors du lancement de la macro...

ci joint imprim ecran
 

Pièces jointes

  • Sans titre.jpg
    Sans titre.jpg
    42 KB · Affichages: 30
  • Sans titre.jpg
    Sans titre.jpg
    42 KB · Affichages: 36
  • Sans titre.jpg
    Sans titre.jpg
    42 KB · Affichages: 34

Discussions similaires