Calcul distance et temps entre deux adresses multiples ligne
Salut Fiorina,
une chose à la fois...
- pour ce qui est de la vitesse de traitement, je ne sais pas du tout. Je constate effectivement le ralentissement mais... ??
- la liste de noms à défiler à la roulette de la souris ne fonctionne pas non plus ici : peut-être inhérent à ce contrôle?
- ta macro d'insertion d'un nouveau client. Pour me (hum, hum) faciliter la tâche, puisque le résultat est le même au final étant donné le tri de la liste, j'insère la ligne... au fond de la liste pour "emmener" les bordures.
Sub AjouterClient()
'
Dim sWkA
Set sWkA = Worksheets("A remplir")
'
With Worksheets("Fichier client")
iRow = .Range("B" & Rows.Count).End(xlUp).Row
.Range("B" & iRow & ":C" & iRow).Insert shift:=xlDown
.Range("B" & iRow).Value = sWkA.Range("C19")
.Range("C" & iRow).Value = sWkA.Range("H19")
.Range("B3:C" & iRow + 1).Sort key1:=.Range("B3"), order1:=xlAscending, Orientation:=xlTopToBottom
End With
sWkA.Range("C19") = ""
sWkA.Range("H19") = ""
'
End SubÇa te va ou tu veux vraiment à la première ligne vide?
Je regarde le reste...
A+
Re,
Comprends pas...
Encore pire, je ne peux pas écrire l'heure ou le nom malgré que je note comme enregistré
Comprends pas non plus : les colonnes sont au bon format de cellules...
Je suis donc obligé de les convertir manuellement en nombre pour pouvoir les utiliser
Ralentissement macros...
J'ai essayé
Application.Calculation = xlManual
...
Application.Calculation = xlAutomaticÇa a un peu accéléré...
Je continue...
A+
curulis57 a écrit :Re,
Comprends pas...
Encore pire, je ne peux pas écrire l'heure ou le nom malgré que je note comme enregistré
En faite pour ici lorsque je tape dans la case heure d’arrivée chez le client ou temps d’intervention: malgré que je tape par exemple 08:00 ça me met un message d’erreur je ne peux donc pas taper manuellement les données dans la case mais doit bien les sélectionner
Comprends pas non plus : les colonnes sont au bon format de cellules...
Je suis donc obligé de les convertir manuellement en nombre pour pouvoir les utiliser
Pour ça dans les colonnes lorsque ça me marque le temps et les kilomètres entre deux clients (résumé des prestations) les kilomètres sont écrit au format texte et non en format nombre ce qui fait que dans mes fiches de paie lorsque je dois faire la somme des kilomètres pour savoir au mois le nombres réalise l’addition ne se fait pas. Par contre une fois converti en nombre là ça marche. N’ayant pas trouvé de solution je convertis manuellement sur l’onglet résumé des prestations et la ca marche. Il faut donc que les heures qui se renseignent toutes seul sur chaque prestation soit en format heure (c’est le cas) et les kilomètres soient en format nombre (pour l’instant ils se mettent en texte)
Ralentissement macros...
J'ai essayé
Application.Calculation = xlManual ... Application.Calculation = xlAutomaticÇa a un peu accéléré...
Pour cette formule de désactiver les calculs automatiques et les remettres après mois en faisant ça ça ne m’indiquait plus le temps et les kilometres sur la feuille résumé des prestations ça doit être qu’ils étaient pas bien placé si chez toi ça marche
Je continue...
Merci c’est vrai que là je bloque et n’arrive pas à accélérer la macro malgré qu’elle soit réduite au minimum (bon langage au bon endroit). J’espère que tu vas trouver quelques chose moi je seche
A+
Salut Fiorina,
- Pour permettre la saisie manuelle dans tes cellules à validation de données, tu dois (dans la fenêtre de paramétrage de la liste) décocher l'option "Données non valides" dans l'onglet 'Alertes d'erreur'.
- Les KM et TEMPS s'inscrivent ici dans le bon format, les colonnes étant paramétrées dans ce format, et les calculs se font correctement lors de l'encodage d'une nouvelle prestation.
- Je ne comprends toujours pas ce qui justifie lalenteur excessive de la macro.
A+
Salut curulis57
- Pour la saisie des données manuellement dans les listes c'est vrai que ça a résolu le problème ce qui fait que je n'ai pas changé la macro et que je vais enlever le nommage de la liste
- Pour ce qui est des km et temps je viens de te faire un exemple:
Si tu regarde en ligne 17, malgré que la colonne soit inscrite en nombre la case H17 est elle en texte comme à chaque fois que j'enregistre une nouvelle prestation. Le fait que cette case soit en texte je ne peux pas m'en servir pour additionner les kilomètres dans ma fiche de paie. Je pense que ça vient de la macro qui me l'insère en texte plutot qu'en nombre, n'y a t il pas moyen de changer ça car se problème ne touche pas le temps mais juste les kilomètres.
- Pour ce qui est de la lenteur je pense avoir trouvé en lisant un livre hier. Il parlait de ralentissement dûe au fait de ne pas mettre les DIM .... As ....
Dans le bouquin ils explique que si on place un DIM sans lui attribuer de AS .... du coup c'est la macro qui adapte la mémoire et du coup créé une grosse perte de temps. Je peux remarqué que c'est le cas dans ta macro:
Dim request
Dim xmlresponse
Dim leg
Ça doit surement venir de la. Le problème c'est que je n'ai pas très bien compris quoi mettre après le AS j'ai des explications mais n'ai pas pu trop y réfléchir.
Peut être que ça vient aussi du fait que toutes les macros sont sur le même module!
J'espère que tu me comprend pour ce dernier paragraphe. Je t’envoie le tableau explicatif sur ce détail qui apparemment peut avoir une grosse importance dans l'utilisation de macro lourde
Salut Fiorina,
pour le format des KM, j'ai ajouté CDbl dans la macro 'InitCalc' et ça fonctionne quant au calcul dans 'Octobre'.
.Range("H" & iRow) = CDbl(Format(d / 1000, "0.0"))Pour le reste, bien qu'ayant complété les DIM, ça n'a rien amélioré au temps de traitement, toujours aussi lent.
A+
Salut Curulis57
Parfait pour le code ça marche niquel
Du coup de mon côté j'avance dans ma lecture espérant trouver une solution pour le ralentissement. En attendant le fichier fonctionne du coup je m'inquiète pas trop. Pour l'attribution des DIM honnetement je ne sais pas comment choisir se qu'on met aprés le AS comment savoir quel attribution lui donner (Long, court)?
Cordialement
Salut Fiorina,
petit florilège des types de variables déclarées.
Dim sWkA As Worksheet
Dim d As Long
Dim t As Long
Dim request As Object
Dim xmlresponse As Object
Dim leg As Object
Dim googleurl As String
Dim ctr As IntegerA+
Bonjour,
Je sais que le sujet est ancien mais j'ai besoin d'un classeur qui a exactement cette fonction, seul hic, je n'arrive pas à faire fonctionner le "calcul distance", je me retrouve avec un message d'erreur "erreur REQUEST_DENIED"
Est-ce qu'il y a quelque chose de spécial à activer ?
Merci d'avance
cordialement
Nicolas