Matrice et récupération de données
Bonjour, j'ai examen dans deux jours et je cale sur ce td. J'aimerais bien recevoir un peu d'aide de votre part et pouvoir comprendre le pourquoi du comment afin de pouvoir m'en sortir pendant mon partiel.
Je m'explique,
Sur ma plage de données K11:P16, j'ai un tableau à deux entrées qui me donne la distance entre deux villes.
je veux être capable, en ayant demandé à l'utilisateur le nom des deux villes, de récupérer cette information dans la matrice et dire que la ville n'est pas dans la base de données si jamais elles n'y sont pas.
J'ai encore un autre souci concernant un autre exercice.
En effet, j'ai une plage de données G9:I23 qui contient des titres de livres ainsi que leurs auteurs et le nombre de livres vendus, je voudrais pouvoir obtenir dans un msgbox le nombre de livres vendus par auteur chaque fois que j'entre le nom d'un auteur.
Là encore j'ai des soucis...
Je joins à ce message le fichier excel concerné ainsi que le code que j'ai déjà écrit.
Merci par avance.
premier exo:
Sub exo6_question1()
Dim p, s, r As Range, i, k, g As Integer, j, f As String
Set p = [L11:P16]
Set s = [K12:P16]
'Set r = [K13]
j = InputBox(" veuillez entrer le nom de la première ville")
f = InputBox("veuillez entrer le nom de la seconde ville")
For i = 1 To p.Columns.Count
For k = 1 To s.Rows.Count
If p.Cells(1, i).Value Like j And s.Cells(i, 1).Value Like f Then
MsgBox " la distance entre les villes " & j & f & " est " & p.Cells(i).Value
ElseIf Not p.Cells(1, i) Like j And Not p.Value(i, 1) Like f Then
MsgBox ("le nom de la ville n'est pas dans la BDD")
End If
Next k
Next i
End Sub
second exo :
Sub exo5_question3()
Dim p As Range, n As String, i, j, k As Integer
Set p = [G10:I23]
k = 0
n = InputBox(" veuillez entrer le nom d'un auteur")
For i = 1 To p.Rows.Count
If p.Cells(i, 2).Value Like n Then
k = k + p.Cells(i, 3)
End If
'Else
'MsgBox ("cet auteur n'existe pas dans la base de données")
MsgBox "l'auteur " & n & " a vendu " & k
Next i
End Sub
Salut Bambir et bienvenue sur le Forum,
Est-ce bien correct de faire tes devoirs à ta place ?? Mais bon, si ça peut t'aider.
Dans le fichier ci-joint une solution pour ta première question.
Tu ne devrais pas poser 36 questions sur le même fil, ça décourage un peu
A te relire.
Merci d avance de ton aide yvouille, mais ce ne sont pas des devoirs à faire à la maison.
Il s agit d une feuille de td donnée à titre facultatif pour ceux qui veulent s entraîner avant l examen.
Comme tu as pu le voir, j ai essayé de répondre aux questions mais sans succes
D où ma présence sur ce forum.
Il y a plein d autres exercices à faire mais j ai buté sur ceux la.
Je vais regarder ce que tu m as fourni comme éléments de réponse.
C est sympa. Je reviens vers toi pour te dire si ça a marché.
Re-bonjour,
Pour tes autres questions, ouvre éventuellement un autre fil, peu de membres s'intéressant à un fil déjà commencé.
A te relire.
Une dernière question Yvouille, j'espère que j'aurais une réponse à temps.
Si dans la même matrice des villes, je veux récupérer le nom des villes les plus distantes?
J'ai essayé avec vlookup et hlookup après avoir trouvé le max dans la matrice mais cela ne fonctionne pas.
J'ai également essayé avec index et match mais sans succès.
Et concernant le fait qu'en demandant à l'utilisateur le nom d'une ville et la distance d en km et qui affiche les noms des villes à moins de d km, toutes les villes.
Concernant ce point, je sèche totalement...
Soit dit en passant, j'ai réussi à trouver la sub pour trouver le nombre de livres vendus pour chaque auteur :
Sub exo5_question3()
Dim p, q, r As Range, n As String, i, j, k As Integer
Set p = [J10]
Set q = [I10:I23] ' quantité
Set r = [H10:H23] 'nom de l'auteur
n = InputBox(" veuillez entrer le nom d'un auteur")
k = 0
For i = 1 To q.Rows.Count
If r.Cells(i).Value = n Then
k = k + q.Cells(i).Value
End If
Next i
If k = 0 Then
MsgBox " pas d'ouvrage pour cet auteur"
Else
MsgBox "le nombre d'ouvrages de cet auteur est " & k
End If
End Sub
Si jamais ça peut servir à quelqu'un...
Salut,
Je n'ai malheureusement pas trop de temps à consacrer à tes demandes actuellement. Comme déjà conseillé, ouvre un nouveau fil avec une question à la fois. Et fais bien attention de te mettre dans la peau de celui qui lira ta demande et qui n'a aucune idée de ton fichier ; essaie d'être le plus clair possible, sans donner d'informations inutiles non plus.
Amicalement.