Recopier des valeurs d'une feuille à une autre [Résolu/Fermé]

Signaler
Messages postés
26
Date d'inscription
dimanche 3 août 2008
Statut
Membre
Dernière intervention
23 janvier 2014
-
Messages postés
26
Date d'inscription
dimanche 3 août 2008
Statut
Membre
Dernière intervention
23 janvier 2014
-
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

Messages postés
16318
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
2 décembre 2020
3 083
Bonjour,

1° Message annulé

Je regarde

Michel
Messages postés
26
Date d'inscription
dimanche 3 août 2008
Statut
Membre
Dernière intervention
23 janvier 2014
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...
Messages postés
26
Date d'inscription
dimanche 3 août 2008
Statut
Membre
Dernière intervention
23 janvier 2014
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...
Messages postés
26
Date d'inscription
dimanche 3 août 2008
Statut
Membre
Dernière intervention
23 janvier 2014
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
Messages postés
26
Date d'inscription
dimanche 3 août 2008
Statut
Membre
Dernière intervention
23 janvier 2014
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 ?
Messages postés
26
Date d'inscription
dimanche 3 août 2008
Statut
Membre
Dernière intervention
23 janvier 2014
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