Valeur à partir de deux variable

Résolu/Fermé
mat0608
Messages postés
13
Date d'inscription
mercredi 9 novembre 2016
Statut
Membre
Dernière intervention
23 avril 2017
- 9 nov. 2016 à 11:09
mat0608
Messages postés
13
Date d'inscription
mercredi 9 novembre 2016
Statut
Membre
Dernière intervention
23 avril 2017
- 9 nov. 2016 à 19:24
Bonjour,

Je voudrais obtenir la valeur de la colonne C, sur les colonnes F et I en fonction de la date et du nombre 402 ou 403.

Pour l instant, ce code me permet d´avoir une valeur correcte si j´indique une date dans la cellule (1,5).
Ce que je voudrais c´est que cela ce fasse pour toutes les date de la colonne "E".

Sub test4()

For i = 1 To 4
If Range("A" & i).Value = Cells(1, 5) And Range("B" & i).Value = 403 Then
Range("C" & i).Copy Destination:=Range("m" & Rows.Count).End(xlUp).Offset(1, 0)

Else
Range("C7:d7").Copy Destination:=Range("m" & Rows.Count).End(xlUp).Offset(1, 0)
End If
Next
End Sub

Merci beaucoup pour votre aide!!



1 réponse

Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
533
9 nov. 2016 à 11:54
Bonjour,

Essaie comme cela
Sub Test()
Dim Ligne As Long, LigneC As Long
Dim Col As Integer
LigneC = 2
For Ligne = 1 To Range("A" & Rows.Count).End(xlUp).Row
Select Case Range("B" & Ligne).Value
Case "402": Col = 5
Case "403": Col = 8
Case Else: Exit For
End Select
Cells(LigneC, Col) = Range("A" & Ligne).Value
Cells(LigneC, Col + 1) = Range("C" & Ligne).Value
LigneC = LigneC + 1
Next Ligne
End Sub

A+
0
mat0608
Messages postés
13
Date d'inscription
mercredi 9 novembre 2016
Statut
Membre
Dernière intervention
23 avril 2017

Modifié par mat0608 le 9/11/2016 à 15:42
pardon, mais il y a quelque chose qui ne fonctionne pas. Les valeurs dont je dispose sont : pour toutes les dates 01/11 .. 2/11 ... 03/11...une reference 402-403-404...auquel je dois associer un montant.

le code que vous m´avez fournit ne vient pas incrémenter mon tableau mais en ajoute un autre plus bas pour la valeur 403.

01/11/2016 402 35,00 date 402 date 403
01/11/2016 403 25,00 01/11/2016 01/11/2016
02/11/2016 402 5,00 02/11/2016 02/11/2016
02/11/2016 403 1.203,77 03/11/2016 03/11/2016
03/11/2016 402 968,24 04/11/2016 04/11/2016
03/11/2016 403 23,09 05/11/2016 05/11/2016
0
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
533 > mat0608
Messages postés
13
Date d'inscription
mercredi 9 novembre 2016
Statut
Membre
Dernière intervention
23 avril 2017

9 nov. 2016 à 17:04
Si j'ai bien saisi, voici une adaptation du code qui devrait te convenir :
Sub Test()
Dim Ligne As Long
Dim L As Range, C As Range
For Ligne = 1 To Range("A" & Rows.Count).End(xlUp).Row
Set C = Range("E1:XFD1").Find(Range("B" & Ligne).Value, , xlValues, xlWhole)
If Not C Is Nothing Then
Set L = C.Offset(, -1).EntireColumn.Find(Range("A" & Ligne).Value, , xlFormulas, xlWhole)
If Not L Is Nothing Then
Cells(L.Row, C.Column) = Range("C" & Ligne).Value
End If
End If
Next Ligne
End Sub


Dans le cas contraire, il te faudra joindre un fichier avec une présentation plus complète de tes données.
Pour cela, tu pourra utiliser https://www.cjoint.com/

Rq: j'ai supposé que les dates étaient renseignées dans les colonnes E, H, etc...

A+
0
mat0608
Messages postés
13
Date d'inscription
mercredi 9 novembre 2016
Statut
Membre
Dernière intervention
23 avril 2017
> Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016

9 nov. 2016 à 19:24
oui c´est parfait.
Maintenant il faut que je comprenne comment tu as fais!
0