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?file=cj200911/cijsjMVtbc.xls

J'aurai un deuxième défi.

A suivre
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FdeCourt
Le #20667131
Salut,

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.
Abileor
Le #20670091
excellent merci nickel
mais si j'osais... pensez vous que l'on puisse trier le résultat par période


"FdeCourt" discussion :

Salut,

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.


FdeCourt
Le #20673481
Bonsoir,

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.
Publicité
Poster une réponse
Anonyme