Recopier des valeurs d'une feuille à une autre

Résolu
Miss_tik76 Messages postés 27 Statut Membre -  
Miss_tik76 Messages postés 27 Statut Membre -
Bonjour à tous,

Je vous joints un fichier pour mieux visualiser mon problème :
https://www.cjoint.com/?DAwnUTP8Slo

Je souhaite recopier les valeurs "quantités" de ma feuille DATA vers la Feuil1 en fonction des valeurs séléctionner dans Feuil1 :
- usine
- véhicule
- date

Si je n'ai pas été claire, je peux réexpliquer...

Merci par avance à tous !

Miss_tik76

4 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    1° Message annulé

    Je regarde

    Michel
    0
  2. Miss_tik76 Messages postés 27 Statut Membre 1
     
    Bonjour,

    J'ai avancé sur mon projet et trouvé ce code :

        With Worksheets("DATA")

    DerLig = .Columns("A").Find("*", , , , , xlPrevious).Row
    Set Col_C = .Range("C2:C" & DerLig)
    Set Plage1 = Sheets("Feuil1").Range("D11:D20")

    For Each d In Plage1
    For Each e In Col_C
    donnee = d.Value
    If e.Value = donnee Then
    If e.Offset(0, -1).Value = ComboBox1.Value Then
    donnee1 = e.Offset(0, 1).Value
    col = Sheets("Feuil1").Rows("10").Find(donnee1, , , , , xlNext).Column
    lig = d.Row
    e.Offset(0, 3).Copy
    Sheets("Feuil1").Cells(lig, col).Select
    Selection.PasteSpecial Paste:=xlPasteValues
    End If
    End If
    Next e
    Next d

    End With

    Mais j'ai un soucis avec ma fonction find qui ne me retourne pas la date exacte...
    0
    1. Miss_tik76 Messages postés 27 Statut Membre 1
       
      Par exemple si ma date cherchée est 02/01/2014 et qu'elle n'est pas présente dans Feuil1 il copie les valeur à la date 02/11/2014...
      0
    2. Miss_tik76 Messages postés 27 Statut Membre 1
       
      Je viens de modifier ma fonction find de cette façon :
      col = Sheets("Feuil1").Rows("10").Find(donnee1, , , xlWhole, , xlNext).Column
      Ca à l'air de fonctionner
      0
  3. Miss_tik76 Messages postés 27 Statut Membre 1
     
    Mon nouveau problème est que s'il ne trouve pas la date il beug. Comment faire pour que s'il ne trouve pas la date il passe à la suivante ?
    0
  4. Miss_tik76 Messages postés 27 Statut Membre 1
     
    Cette fois ce code fonctionne sur mon exemple, plus qu'à la mettre à l'épreuve en condition réel ;)

        Dim DerLig As Integer
    Dim Plage1 As Range
    Dim Lig1 As Integer
    Dim Col_C As Range
    Dim col As Integer
    Dim d As Range
    Dim e As Range

    With Worksheets("DATA")

    DerLig = .Columns("A").Find("*", , , , , xlPrevious).Row
    Set Col_C = .Range("C2:C" & DerLig)
    Set Plage1 = Sheets("Feuil1").Range("D11:D20")

    For Each d In Plage1

    For Each e In Col_C

    If e.Value = d.Value Then

    If e.Offset(0, -1).Value = ComboBox1.Value Then
    donnee1 = e.Offset(0, 1).Value
    'Pour diminuer le temps de recherche
    Nb_Tr = Application.CountIf(Sheets("Feuil1").Rows("10"), donnee1)
    If Nb_Tr > 0 Then
    col = Sheets("Feuil1").Rows("10").Find(donnee1, , , xlWhole, , xlNext).Column
    lig = d.Row
    e.Offset(0, 3).Copy
    Sheets("Feuil1").Cells(lig, col).Select
    Selection.PasteSpecial Paste:=xlPasteValues
    End If

    End If

    End If

    Next e

    Next d

    End With
    0