Calcul entre TextBox - Formatage - lancer URL depuis TextBox

Bonjour,

J'ai réussi à créer un USF qui me convient.

Néanmoins, le chiffre d'affaire apparaît avec des décimales, je voudrais convertir les dates de naissance en âge.

J'aimerais calculer un nombre d'individus à partir de l'affichage de leurs noms et réaliser des ratios sur mes chiffres d'affaires.

Pour couronner le tout, l'idéal serait que l'URL obtenue (localisation google map de mes clients) s'ouvre directement par un clic de souris.

J'ai surligné en rouge dans mon USF l'ensemble des problèmes que je rencontre.

Pour un débutant qui doit rendre une copie assez rapidement, il s'agit de questions compliquées.

Je vous joins mon fichier contenant l'USF annoté sur les points critiques.

Je vous remercie pour votre compréhension.

Bonjour,

... je voudrais convertir les dates de naissance en âge

tu as la fonction DATEDIF() :

=DATEDIF(A1;AUJOURDHUI();"y")

J'aimerais calculer un nombre d'individus à partir de l'affichage de leurs noms et réaliser des ratios sur mes chiffres d'affaires

Pour le ratio du CA, tu divises le chiffre d'affaire total par le chiffre d'affaire individuel :

Total A-2 = 444998,45€, Total A-1 = 466100,17€ donc Total = 911098,62€

Ratio A-1 = 911098,62€ / 466100,17€ = 0,51158 soit 51,16%

Ratio A-2 = 911098,62€ / 444998,45€ = 0,48841 soit 48,84%

Pour le nombre d'individus, je ne vois pas trop ce que tu veux ?

Pour couronner le tout, l'idéal serait que l'URL obtenue (localisation google map de mes clients) s'ouvre directement par un clic de souris.

Ce sont déjà des urls, il te suffis de les valider !

Oups, je n'ai pas fais attention au formulaire !

Pour le l'url, sur l'abaissement du bouton gauche de la souris :

Private Sub hyperlienG_Map_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    If Button = 1 And hyperlienG_Map.Text <> "" Then
        ActiveWorkbook.FollowHyperlink hyperlienG_Map.Text
    End If
End Sub

Pour totaliser, à mettre sur l'évènement "Change" des TextBox, un exemple avec les deux ci-dessous "comiard2014" et "comvie2014" à adapter pour les autres :

Private Sub comiard2014_Change()
    On Error Resume Next
    totalcom2014.Text = comiard2014.Text * 1 + comvie2014.Text * 1
    If Err.Number <> 0 Then totalcom2014.Text = ""
End Sub

Private Sub comvie2014_Change()
    On Error Resume Next
    totalcom2014.Text = comiard2014.Text * 1 + comvie2014.Text * 1
    If Err.Number <> 0 Then totalcom2014.Text = ""
End Sub

pour ce qui est du ratio, je t'ai donné une piste à adapter

Merci Theze pour vos réponses et pardon d'y répondre en retard.

Le lien URL : super.

La DATEDIF , le problème est que ma base comporte tantôt les annéees YYYY, tantôt les dates dd/mm/YY :

Y-a-t-il une solution pour calculer sur les 2 formats en même temps ?

Je n'ai pas bien compris pour les ratios : il faut intégrer la formule de calcul dans une macro change du TextBox ?

Compter les individus :

j'ai 4 TextBox (par exemple) qui renseignent des noms de collaborateurs, mais selon ma recherche, toutes ne sont pas remplies.

Dans une 5 ème TextBox, je veux pouvoir les compter : comment faire, quelle est la macro ?

Existe-t-il une formule RechercheV à partir d'un TEXTBOX qui va chercher des valeurs dans une autre feuille.

Si Oui, comment s'écrit la macro recherchev ?

Pb de formatage :

Si vous regardez mon USF, vous allez voir que mes commissions sur 3 ans comportent des décimales : comment ne pas les afficher et/ou indiquer un espace comme pour 10000 écrire => 10 000 ?

Même chose pour afficher en % au lieu de 0,001234

J'ai inséré des Multipages dans mon Multipage.

A chaque nouveau clic sur les onglets des sous-pages, l'ascenseur vertical descend. Quelle est la solution ?

Présentation de l'USF :

Comment faire pour le mettre plein écran ou inversement le rapeticir à volonté sans perdre les formats ?

Je sais, cela fait beaucoup, mais pour un novice, c'est important !

Je vous remercie par avance pour votre aide et votre temps précieux.

Bonjour,

Voilà un premier jet de ton formulaire mais il y a une ou deux choses que tu souhaites et que je n'ai pas bien compris (voir labels sur la Form) !

Existe-t-il une formule RechercheV à partir d'un TEXTBOX qui va chercher des valeurs dans une autre feuille.

Si Oui, comment s'écrit la macro recherchev ?

Je t'ai posé un TextBox et un bouton et j'ai créé une feuille pour une démonstration de RechercheV (VLookUp), dans le TextBox tu entre le mot "Mot 15" et tu auras la valeur correspondante, il tu suffis d'adapter à tes besoins.

J'ai inséré des Multipages dans mon Multipage.

A chaque nouveau clic sur les onglets des sous-pages, l'ascenseur vertical descend. Quelle est la solution ?

Je n'ai vu aucun multipages ?

Présentation de l'USF :

Comment faire pour le mettre plein écran ou inversement le rapeticir à volonté sans perdre les formats ?

Par Api Windows, la boite de menu est rajoutée (Réduire, Agrandir et Fermer)

Tu es génial.

Je regarde ça cet après-midi et je reviens vers toi

Bonjour Theze,

L'avantage avec vous, c'est qu'on l'impression de devenir intelligent d'un seul coup !

Rien que pour ça MERCI

J'ai retravaillé pour enrichir et comprendre les formules de calcul et je crois tenir le bon bout (enfin, j'ai l'impression).

Il subsiste un problème : lorsqu'un enregistrement ne contient pas les données concernées par les formules ou que l'on crée un nouvel enregistrement, les calculs plantes.

C'est vrai sur quasiment tous les champs de mon fichiers... Pourriez-vous m'aider ?

Ci-joint une nouvelle version du fichier,

avec encore des petites questions sur la concaténation ou la recherche (en orange dans l'USF).

Lors du téléchargement, ImageList a disparu.

Je sais que les formules sont dans ma database mais je préfère les calculer dans l'USF pour que le résultat s'affiche en dynamique, sinon il faudrait trouver le moyen de rafraîchir le calcul chaque fois qu'on modifie une valeur ou que l'on créé un nouvel enregistrement. Ca doit revenir au même car je dois pouvoir ensuite recopier mon résultat dynamique dans ma database de la même façon.

Et en plus, comme ma database sera très très volumineuse, ça va l'alléger un peu (?).

A moins qu'il y ait une formule magique pour ça ?

Grâce à vous, je touche au but (ma date limite pour remettre ma copie étant jeudi).

Bonjour,

Voici ton fichier avec quelques modifs !

Woaow SUPER

Il faut que j'ingurgite tout ça maintenant... pour essayer de comprendre.

J'ai quand même un problème avec mon CA calculé (ou pas d'ailleurs) car si toutes les valeurs d'un enregistrement sont à 0 dans la base (par exemple si on met tous les CA à 0 sur sur le 1er enregistrement), il me plante et ne réussit pas à faire le calcul des % d'évolution.

Comment faire pour formater un champ adresse avec des numéros de rue et du texte et faire en sorte que le code postal soit 00 000 (comme à Nice avec 06 000) ?

Comment fait-on pour empêcher/bloquer la saisie de certains TextBox (ceux calculés par exemple) : y-a-t-il quelque chose dans les propriétés des TextBox ou faut-il écrire un code ?

Encore un grand merci pour ton accompagnement inespéré.


Ah oui, encore un truc,

Comment on fait un somme.si

Je m'explique :

Dans l'exemple de mon fichier on calcule le nombre d'individus. Ce n'est pas le bon exemple, mais je voudrais faire pareil avec la somme si à la place des individus, j'avais des valeurs à additionner.

Je me rapproche du but.

Merci de me supporter encore un peu...

Bonjour,

J'ai quand même un problème avec mon CA calculé (ou pas d'ailleurs) car si toutes les valeurs d'un enregistrement sont à 0 dans la base (par exemple si on met tous les CA à 0 sur sur le 1er enregistrement), il me plante et ne réussit pas à faire le calcul des % d'évolution.

Il te faut tester la valeur du TextBox, si égale à "0" (c'est un String d'où les guillemets) sortie de Sub :

Private Sub totalcom2016_Change()

    If totalcom2016.Text = "0" Then Exit Sub

    totalcom2016.Text = Format(totalcom2016.Text, "##,##0")
    TextBox8.Text = Format((totalcom2016 * 1) / (totalcom2016.Text * 1), "#0.0%")

End Sub

Comment faire pour formater un champ adresse avec des numéros de rue et du texte et faire en sorte que le code postal soit 00 000 (comme à Nice avec 06 000) ?

Il est assez compliqué de formater un champ d'adresse postale car beaucoup trop de possibilités !

Pour le code postal, formate ta colonne en Texte et le 0 de devant ne sera pas supprimé. 06 000 (normalement, il n'y a pas d'espace dans un code postal)

Comment fait-on pour empêcher/bloquer la saisie de certains TextBox (ceux calculés par exemple) : y-a-t-il quelque chose dans les propriétés des TextBox ou faut-il écrire un code ?

Une chose très simple si tu ne veux pas que la valeur soit modifiée, c'est d'utiliser un Label à la place d'un TextBox, c'est ce que j'ai fais pour le champ du lien hypertexte.

Comment on fait un somme.si

=SOMME.SI(Plage de recherche du critère;Critère;Plage de cellules à additionner)

Admettons que tu ai en colonne A les lettres :

A

B

A

D

A

F

en colonne B les nombres :

10

20

30

40

50

60

tu entres la formule suivante :

=SOMME.SI(A1:A6;"A";B1:B6)

le résultat sera 90 car la fonction va additionner les valeurs se trouvant au même emplacement ordinal que le critère.

Theze,

Je viens encore demander secours et j'en désolé.

J'ai créé un nouvel USF, sur le même principe et changé le nom du fichier.

1 - je t'ai indiqué ce que j'attendais au niveau de la Recherche, mais à la limite, c'est moins important que les calculs.

2 - la preuve que je suis une buse car je ne sais pas faire les opérations ni les opérations croisées ou avec des conditions, et encore moins afficher le résultat dans un Label ...

=> les seuls Totaux que j'obtiens sont récupérés de ma base de données et non pas ceux calculés.

3 - pour couronner le tout, la macro de CREATION d'un nouvel enregistrement ne créé rien => qu'est-ce qui cloche ?

Vaste programme.

Merci encore de ta patience avec moi !!!

Bonjour,

3 - pour couronner le tout, la macro de CREATION d'un nouvel enregistrement ne créé rien => qu'est-ce qui cloche ?

Dans ton code, tu utilises la propriété "Tag" des TextBox pour définir les colonnes où doivent être inscrites les valeurs qu'il contiennent et c'est une bonne pratique mais dans ton cas, aucun TextBox a une valeur dans leur propriété "Tag" et donc, ta variable "colonne' est toujours égale à 0 ! Paramètre déjà les Tag et reviens.

Voici ton fichier !

Bon sang, je ne peux pas vérifier actuellement, mais cet évident.

Je vais regarder ça dès que possible.

je te tiens au courant.

Effectivement, lors de la création il faut bien indiquer un numéro de Tag pour chaque Control qui correspond bien au numéro de la colonne dans laquelle il va aller se loger.

Par contre, je coince encore sur les calculs et la recopie de mon Label calculé dans la case C qui ne semble pas s'effectuer.

Ensuite dans la colonne S tout se décale vers le bas et je n'ai toujours pas réussi à obtenir une somme sur les S1... même en recopiant ton code FUNCTION AS DOUBLE dont je crois pourtant avoir compris le sens, mais c'est pas sûr

Si tu as ENCORE la force et le courage de m'aider un peu , je te remets un fichier rectifié en PJ.

J'ai signalé en orange les autres problèmes que je rencontre (de la macro MODIF en passant par la macro CREATION jusqu'au formatage en "##,##0" ...)

Les TextBox Total Général , total S1, S2 et S3 sont verrouillées, ce qui me va très bien => mais comment as-tu fait ?

Au fait, dans le 1er USF, tu m'avais formaté et calculé l'âge à partir des dates : si on veut une couleur transparente à la place du Vert (et du rouge aussi), lorsque c'est OK, quel est le code ?

Bonjour,

Ensuite dans la colonne S tout se décale vers le bas et je n'ai toujours pas réussi à obtenir une somme sur les S1... même en recopiant ton code FUNCTION AS DOUBLE dont je crois pourtant avoir compris le sens, mais c'est pas sûr

Il ne suffit pas de faire une fonction, il faut aussi l'appeler !

Les TextBox Total Général , total S1, S2 et S3 sont verrouillées, ce qui me va très bien => mais comment as-tu fait ?

Je n'ai rien fais, c'est toi qui à mis leur propriété "Enabled" sut False

Au fait, dans le 1er USF, tu m'avais formaté et calculé l'âge à partir des dates : si on veut une couleur transparente à la place du Vert (et du rouge aussi), lorsque c'est OK, quel est le code ?

En mode création, tu définis la couleur voulue et tu copie sa valeur dans le code

Fichier modifié en retour mais attention, ici je suis sous Excel 2003 donc enregistré en .xls !

Encore merci Theze.

Je vais regarder ça;

Super. Merci beaucoup pour ce grand coup de pouce efficace.

Ca marche nikel.

Je dois maintenant faire un document de synthèse et d' analyse statistique.

Est-ce qu'il vaut mieux le réaliser dans une feuille classique ou utiliser un USF (il y aura beaucoup de calculs conditionnels) ?

Pour revenir sur l' ancien post et l' hyperLien, j'ai constaté qu' on perdait la petite main ImageList lorsqu' on passait à la 2eme consultation par la ComboBox, mais le lien vers l' URL fonctionne quand même.

Bonjour,

Je dois maintenant faire un document de synthèse et d' analyse statistique.

Est-ce qu'il vaut mieux le réaliser dans une feuille classique ou utiliser un USF (il y aura beaucoup de calculs conditionnels) ?

Ce que tu fais dans Excel sera plus rapide que dans un UserForm mais c'est une question de préférence et donc, à toi de voir ce qui te convient le mieux !

Pour revenir sur l' ancien post et l' hyperLien, j'ai constaté qu' on perdait la petite main ImageList lorsqu' on passait à la 2eme consultation par la ComboBox, mais le lien vers l' URL fonctionne quand même.

Bizarre, je viens de faire le test à 5 reprises et aucun problème, la petite main est toujours là !

Tu utilises la version avec le contrôle ImageList ou avec le contrôle Image ? Le test que je viens de faire est avec le contrôle Image (le dernier que je t'ai posté)

Bonjour Theze,

Grâce à toi, je suis arrivé au bout de mon projet VBA et de mon formulaire USF.

Il y a quand même quelque chose que je voudrais encore résoudre.

Lorsque je crée un nouvel enregistrement, ou lorsque j'en modifie un, les macros mettent presque 50 secondes pour s'exécuter.

Il faut dire que le nombre de champs est très élevé et que le fichier comporte 2000 lignes.

Y-a-t-il quelque chose dans mes macros qui ralentit le traitement ?

Si non, y-a-t-il un moyen d'accélérer la copie des données ?

Peux-tu m'aider STP.

Je te joins un fichier totalement épuré pour des raisons de confidentialité, mais tu y trouveras mes macros.

Je ne sais pas si c'est suffisant.

These,

Te fatigues pas, j'ai trouvé.

Ca vient du mode de recalcul par défaut d'Excel.

Il faut que je passe en calcul Manuel, et là, la copie est instantanée !

MERCI I N F I N I M E N T

Rechercher des sujets similaires à "calcul entre textbox formatage lancer url"