piga25
XLDnaute Barbatruc
Bonjour,
J'ai un code qui fonctionne très bien pour calculer des distances entre deux villes, sauf lorsque l'on fait une faute dans le nom ou qu'il existe plusieurs possibilités (dans ce dernier cas, il faut ajouter le nom du département et cela fonctionne bien).
Ce que je souhaiterai avoir, c'est une gestion d'erreur qui me signale qu'il faut corriger et ajouter le nom du département dans la TextBox destination dans mon Userform.
Userform : frmNotedeFrais
TxtBox : txtVilleArrivee
Est-ce dans ce code là qu'il faut intégrer la gestion d'erreur ou ailleurs.
	
	
	
	
	
		
Ou dans celui-ci
	
	
	
	
	
		
Ou alors dans le code de l'userform
code du bouton valider:
	
	
	
	
	
		
	
		
			
		
		
	
				
			J'ai un code qui fonctionne très bien pour calculer des distances entre deux villes, sauf lorsque l'on fait une faute dans le nom ou qu'il existe plusieurs possibilités (dans ce dernier cas, il faut ajouter le nom du département et cela fonctionne bien).
Ce que je souhaiterai avoir, c'est une gestion d'erreur qui me signale qu'il faut corriger et ajouter le nom du département dans la TextBox destination dans mon Userform.
Userform : frmNotedeFrais
TxtBox : txtVilleArrivee
Est-ce dans ce code là qu'il faut intégrer la gestion d'erreur ou ailleurs.
		VB:
	
	
	Sub CalculeDistance()
    'Déclaration des variables
    Dim URL As String, Txt As String
    Dim VilleDepart As String, VilleDestination As String
 
   On Error GoTo monErreur:
 
    'Affectation des variables
    VilleDepart = Range("AD4")
    VilleDestination = Range("AD5")
    'Avec la feuille active
    With ActiveSheet
        'Construction du lien URL du site Distance2villes.com
        URL = DIST & VilleDepart & "&destination=" & VilleDestination
        With CreateObject("WINHTTP.WinHTTPRequest.5.1")
            .Open "GET", URL, False     'Si HTTP, la propriété de l'Open est GET, envoie la requête sans Body
            .Send                       '
            Txt = .responseText
        End With
        Range("AD6") = Split(Split(Txt, "id=""distanciaRuta"">")(1), "</strong>")(0)
    End With
 
monErreur:
    MsgBox "Ajouter le nom du département ex: Ville, département"
    Exit Sub
   
 
End Sub
	Ou dans celui-ci
		VB:
	
	
	Sub OuvreFormulaire()
    Dim Reponse As Integer
    Reponse = MsgBox("Désirez-vous compléter une nouvelle Note de Frais mensuelle ?", vbYesNo, "SAISIE NOTE DE FRAIS")
    If Reponse = vbYes Then
  
  
        With ActiveSheet
      
        If MsgBox("Etes-vous certain de vouloir supprimer le tableau ?", vbYesNo, "Demande de confirmation") = vbYes Then
        Range("C10").ClearContents
        .Range("B13:G30").ClearContents
        MsgBox "Le contenu du tableau a été effacé !"
    End If
      
            '.Range("C10").ClearContents
            '.Range("B13:F30").ClearContents
        End With
        frmNotedeFrais.Show
    Else
        frmNotedeFrais.Show
        'Exit Sub
    End If
  
End Sub
	Ou alors dans le code de l'userform
code du bouton valider:
		VB:
	
	
	Private Sub btnValider_Click()
               
    'Appel de la procédure qui calcule la distance entre deux villes
    Call CalculeDistance
    'On récupère la dernière ligne vide de la Note de Frais
    Range("B31").End(xlUp).Offset(1, 0).Select
    'On teste que la date a été saisie
    If Me.txtDate <> "" Then
        ActiveCell = CDate(Me.txtDate) 'Format Date
    Else
        lblMessage = "Vous n'avez pas saisie la date du trajet"
    End If
    'On affiche les infos dans la note de frais
    ActiveCell.Offset(0, 1) = Me.txtVilleDepart
    ActiveCell.Offset(0, 2) = Me.txtVilleArrivee
    ActiveCell.Offset(0, 3) = Me.txtClient
    ActiveCell.Offset(0, 4) = Range("AD7")
    ActiveCell.Offset(0, 5) = Me.TxtPeage
   
End Sub