Vba géolocalisation simple
Glady994
Messages postés
530
Statut
Membre
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à vous Maitres du vba :p.
Bonjour ma question peut paraitre simple mais disons que j'ai quand même un peu du mal.
Tout d'abord voici la table excell sur laquelle je travaille, ( vous comprendrez surement mieux avec)
Je voudrait qu'avec un commande d'inputbox tel que celle-ci
On puisse entrer un num client et qu'il m'affiche alors l'adresse de celui ci dans une message box.
J'aurai vraiment besoin d'aide :).
Merci d'avance ! :)
Bonjour ma question peut paraitre simple mais disons que j'ai quand même un peu du mal.
Tout d'abord voici la table excell sur laquelle je travaille, ( vous comprendrez surement mieux avec)
Je voudrait qu'avec un commande d'inputbox tel que celle-ci
Private Sub Cli()
Dim Cli As TextColumn2
Cli = InputBox("Numéro Client", "Géolocalisation", 1)
Call Cli
End Sub
On puisse entrer un num client et qu'il m'affiche alors l'adresse de celui ci dans une message box.
J'aurai vraiment besoin d'aide :).
Merci d'avance ! :)
3 réponses
-
J'ai d'abord essayé de faire ceci :
Sub Cli() Dim Cli As TextColumn2 Cli = InputBox("Numéro Client", "Géolocalisation", 1) Call Cli If Target.Column = 1 And Target.Value <> "" Then If Target.Value = Cli Then Cells(Target.Row, 5) = v_adresse Cells(Target.Row, 6) = v_cp Cells(Target.Row, 7) = v_ville End If End If MsgBox (v_adresse + v_cp + v_ville, vbOKOnly,"Copier cette adresse dans google map") Dim v_http As String v_http = "https://www.google.fr/maps?f=q&hl=fr&q" v_http = v_http & v_adresse & " ,+ " & v_cp & "+" & v_ville End Sub
Mais evidemment ça ne fonctionne pas
J'ai alors essayé ceciSub Cli() Dim Cli As TextColumn2 Cli = InputBox("Numéro Client", "Géolocalisation", 1) Call Cli Dim adresse As TextColumn2 Dim cp As Integer Dim ville As TextColumn2 If Target.Column = 1 And Target.Value <> "" Then If Target.Value = Cli Then adresse = Cells(Target.Row, 5) cp = Cells(Target.Row, 6) ville = Cells(Target.Row, 7) End If End If MsgBox "v_adresse + v_cp + v_ville, vbOKOnly", vbOKOnly, "Copier cette adresse dans google map" End Sub
Qui me semblait plus logique mais j'ai du mal à comprendre ce qu'il veut dire quand il me dit : "erreur d'execution 91 : Variable objet ou variable de bloc with non définie"
Pllz help me :(-
pourquoi rappelles tu ta macro cli avec Call cli? pour boucler sans fin ?
si tu emploies comme nom de macro" cli", il est ambigu d'appeler une variable "cli"
Cli est le numéro du client mais cela ne te dit pas sur quelle ligne il est !
il te faut donc trouver cette ligne avec la fonction Find (voir l'aide)en testant avant si Cli existe bien dans la liste colonne A
Target n'a rien à voir dans ce type de macro (voir l'aide)
ensuite tu n'as pas besoin de regrouper adresse, codepostal et ville pour appeler googlemaps
exemple qui marche à partir de la macro de Johan Sorel -on cite TOUJOURS la source des macros dont on est pas l'auteur -
Sub se_situer() 'D'après Johann Sorel https://jsorel.developpez.com/tutoriels/sig/googlemaps1/ Dim adresse As String, codpost As String, ville As String Dim lien As String adresse = Range("B2") codpost = Format(Range("B3"), "00000") ville = Range("B4") lien = "https://www.google.fr/maps?f=q&hl=fr&q" _ & adresse & " ,+ " & codpost & "+" & ville On Error GoTo erreur ThisWorkbook.FollowHyperlink (lien) Exit Sub erreur: MsgBox "Impossible de se connecter à GoogleMaps" End Sub
Pour apprendre des bases solides sur VBA plutôt que de faire çà à l'inspiration (pour ne pas dire au pif)
https://bidou.developpez.com/article/VBA/ -
-
-
-
J'ai donc changé de code et j'arrive à quelque chose de mieux grâce à Michel_m.
Le problème c'est que j'aimerai que l'utilisateur puisse décider de cette ligne grâce à une input box j'ai donc fait ceciSub Cli() Dim Ent As TextFrame Ent = InputBox("Numéro ligne Client", "Géolocalisation", 1) End Sub Sub se_situer() Dim adresse As String, codpost As String, ville As String Dim lien As String adresse = ActiveSheet.Range("D" & Ent).Value codpost = Format(ActiveSheet.Range("E" & Ent).Value, "0000") ville = ActiveSheet.Range("F" & Ent).Value lien = "https://www.google.fr/maps?f=q&hl=fr&q" & adresse & " ,+ " & codpost & "+" & ville On Error GoTo erreur ThisWorkbook.FollowHyperlink (lien) Exit Sub erreur: MsgBox "Impossible de se connecter à GoogleMaps" End Sub
Mais il me dit toujours "erreur d'execution 91 : Variable objet ou variable de bloc with non définie" donc je crois que je ne comprend pas un truc et ça devient quelque peu énervant :)...
Si quelqu'un peut m'aider? :'( -
Voilà mon code actuel
Sub Cli() Dim Ent As Integer Ent = InputBox("Numéro ligne Client dans Excell", "Géolocalisation", 2) Dim adresse As String, codepostal As String, nomville As String Dim lien As String adresse = ActiveSheet.Range("D" & Ent).Value codepostal = Format(ActiveSheet.Range("E" & Ent).Value, "0000") nomville = ActiveSheet.Range("F" & Ent).Value lien = "https://www.google.fr/maps?f=q&hl=fr&q" & adresse & " ,+ " & codepostal & "+" & nomville On Error GoTo erreur ThisWorkbook.FollowHyperlink (lien) Exit Sub erreur: MsgBox "Impossible de se connecter à GoogleMaps" End Sub
Et voilà la table excell : http://img15.hostingpics.net/pics/420459Sanstitre1.png
Maintenant je voudrait que le chiffre inscrit dans l'inputbox soit l'ID client et non le numéro de la ligne. Mais que le programme en resorte quand même l'adresse?
Est-ce possible facilement? Comment saisir la valeur contenue dans une case et en sortir la ligne dans laquelle celle-ci est contenue?
Je suis un peu largué, quelqu'un aurait une idée ?
Merci d'avance !!!!-
Bonjour,
Pourtant, je t'avais bien fait remarqué que l'on citait TOUJOURS ses sources, à savoir Johan Sorel. comme tu t'en moques, aucune raison de t'aider
D'autre part, je t'ai signalé que pour trouver la ligne, il fallait utiliser la fonction FIND et je t'ai conseillé de voir l'aide FIND ; là aussi aucune raison de t'aider
-