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....
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
FdeCourt
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.
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)
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
excellent merci nickel mais si j'osais... pensez vous que l'on puisse trier le résultat par période
"FdeCourt" a écrit dans le message de groupe de 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.
excellent merci nickel
mais si j'osais... pensez vous que l'on puisse trier le résultat par période
"FdeCourt" <fdecourt@gmail.com> a écrit dans le message de groupe de
discussion :
49b5bb07-0c82-4f2e-ae9a-97fa2dd2ddbe@o31g2000vbi.googlegroups.com...
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)
excellent merci nickel mais si j'osais... pensez vous que l'on puisse trier le résultat par période
"FdeCourt" a écrit dans le message de groupe de 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
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.
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
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