Defi N° 1... aide pour un jeu
Le
Abileor
Bonjour j'ai besoin de votre aide
Je veux via une macro aller remplir une zone nommée
Ex : flotte de voitures
Elles circulent et j'aimerai que sur une destination la case nommée Rouen
s'alimente automatiquement avec le passage des voiture et en fonction des
périodes ou elles sont passées.
Cf tableau ci joint
http://www.cijoint.fr/cjlink.php?fi...jMVtbc.xls
J'aurai un deuxième défi.
A suivre
Je veux via une macro aller remplir une zone nommée
Ex : flotte de voitures
Elles circulent et j'aimerai que sur une destination la case nommée Rouen
s'alimente automatiquement avec le passage des voiture et en fonction des
périodes ou elles sont passées.
Cf tableau ci joint
http://www.cijoint.fr/cjlink.php?fi...jMVtbc.xls
J'aurai un deuxième défi.
A suivre

Poser une question


Avec une formule VBA ?
Function mesVoitures(tablo1 As Range, tablo2 As Range, maValeur As
Range)
Application.Volatile
tmpTablo1 = tablo1.Value
tmpTablo2 = tablo2.Value
tmpMaValeur = maValeur.Value
'Controles
If UBound(tmpTablo1, 2) > 1 Then mesVoitures = "Erreur"
If UBound(tmpTablo1, 1) <> UBound(tmpTablo2, 1) Then mesVoitures "Erreur"
If IsArray(tmpMaValeur) Then mesVoitures = "Erreur"
If mesVoitures <> "Erreur" Then
x = UBound(tmpTablo1, 1)
For x = 1 To UBound(tmpTablo2, 1)
For y = 1 To UBound(tmpTablo2, 2)
If tmpTablo2(x, y) = tmpMaValeur Then
mesVoitures = mesVoitures & tmpTablo1(x, 1) & " / " &
tmpTablo2(1, y) & Chr(10)
End If
Next
Next
End If
End Function
et elle s'utilise ainsi :
=mesvoitures(A3:A6;B3:E6;G3)
Cordialement,
F.
mais si j'osais... pensez vous que l'on puisse trier le résultat par période
"FdeCourt" discussion :
Il suffit juste d'inverser les deux lignes "for" (en supposant que les
mois sont déjà dans le bon ordre dans le tableau) :
Function mesVoitures(tablo1 As Range, tablo2 As Range, maValeur As
Range)
Application.Volatile
tmpTablo1 = tablo1.Value
tmpTablo2 = tablo2.Value
tmpMaValeur = maValeur.Value
'Controles
If UBound(tmpTablo1, 2) > 1 Then mesVoitures = "Erreur"
If UBound(tmpTablo1, 1) <> UBound(tmpTablo2, 1) Then mesVoitures =
"Erreur"
If IsArray(tmpMaValeur) Then mesVoitures = "Erreur"
If mesVoitures <> "Erreur" Then
x = UBound(tmpTablo1, 1)
For y = 2 To UBound(tmpTablo2, 2)
For x = 1 To UBound(tmpTablo2, 1)
If tmpTablo2(x, y) = tmpMaValeur Then
mesVoitures = mesVoitures & tmpTablo1(x, 1) & " / " &
tmpTablo2(1, y) & Chr(10)
End If
Next
Next
End If
End Function
Cordialement,
F.