× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 Afficher résultat cellule dans textBox sans virguleSujet résolu
Ajouter un message à la discussion
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]
Lui
  Posté le 19/04/2013 @ 19:42 
Aller en bas de la page 
Astucien

Bonjour ,

Excel 2007

J'arrive à afficher le résultat d'une cellule dans la textBox
Seul souci, c'est qu'il y a une virgule qui vient s'ajouter

Ex: Si le résultat de ma cellule W20 est 12345
La textBox affiche: 12345,657943212

La textBox est dans un userform1

Pour que le résultat s'affiche, voici ce que j'ai écrit:

Private Sub TextBox23_Change()
TextBox23.Value = Range("w20").Value
End Sub

Merci pour votre aide



Modifié par Lui le 19/04/2013 21:14
Publicité
ferrand
 Posté le 19/04/2013 à 20:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonsoir,

Tu appliques un format à ton affichage, par exemple : ...=Format(Range("W20").Value, "0")

Lui
 Posté le 19/04/2013 à 20:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Re

Merci Ferrand.

Il faut que j'écrive comme cela ?

Private Sub TextBox23_Change()
TextBox23.Value = Range("w20").Value=Format(Range("W20").Value, "0")
End Sub

Lui
 Posté le 19/04/2013 à 20:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Ah c'est bon, je suis nulle

Private Sub TextBox23_Change()
TextBox23.Value = Format(Range("W20").Value, "0")
End Sub

Merci beaucoup ça marche

Lui
 Posté le 19/04/2013 à 21:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Re ,

Par contre quand la valeur change, je suis obligé de mettre le curseur dans la texbox et appuyer
sur espace pour que le nouveau résultat apparaisse.

ferrand
 Posté le 19/04/2013 à 22:04 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Re,

Sans préjuger de ce que tu veux faire, si le TextBox doit se mettre à jour selon les changements de W20, si W20 est liée au TextBox (propriété ControlSource), j'aurais plutôt mis :

TextBox1.Value = Format(TextBox1.Value, "0")

A+

Lui
 Posté le 19/04/2013 à 22:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Re,

Désolé

La cellule w20, affiche l'addition des cellules G18 et G24
Les Cellules G18 et G24, je les rempli en utilisant 2 autres TextBox distinct

Au fure et à mesure que je change les valeurs G18/24, je vois derriere, la feuille de calcul
modifier la cellule W20 en temps réel.

Mais cette modification ne se repercute pas (en temps réel) dans ma textBox de résultat.
Je dois mettre le curseur dedans et cliquer sur espace

J'espere que je m'exprime bien, car pas facile pour moi

A prestu


ferrand
 Posté le 19/04/2013 à 23:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Tes TextBox sont où ? Dans la feuille ou un Userform ?

Et les cellules sont-elles liées aux TextBox ?

Lui
 Posté le 19/04/2013 à 23:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Re,

Un UserForm

Non, je ne les ai pas liées.

Par contre, j'ai planté mon fichier grave ...il s'ouvre sur une erreur fatale...

Je vais devoir tous recommencer
ça me fera la main...



Modifié par Lui le 20/04/2013 07:30
Publicité
Lui
 Posté le 20/04/2013 à 07:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Re,{#}

Fichier réparé !!

En désactivant les macros, et en réouvrant mon fichier, j'ai
pu éffacer le code que j'avai mis dans workbook, afin que l'userform s'ouvre au démarrage.
Je verrai ce probleme plus tard.

Du coup me voici au point de départ.



ferrand
 Posté le 20/04/2013 à 10:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Tu devrais peut-être lier tes TextBox aux cellules concernées par leur affichage : il suffit de mettre la référence de cellule (W20 par ex.) dans la propriété ControlSource du TextBox concerné. La mise à jour sera automatique et tu affectes le format que tu veux à la nouvelle valeur prise par le TextBox.

Lui
 Posté le 20/04/2013 à 10:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

ferrand a écrit :

Tu devrais peut-être lier tes TextBox aux cellules concernées par leur affichage : il suffit de mettre la référence de cellule (W20 par ex.) dans la propriété ControlSource du TextBox concerné. La mise à jour sera automatique et tu affectes le format que tu veux à la nouvelle valeur prise par le TextBox.

Oui, mais cela annule la formule
la cellule w20 contient cette formule =G18+G24

En liant la textbox à la cellule W20, la formule s'efface
J'ai alors protégé la feuille, mais ça passe outre la protection, la formule est quand meme
modifiée.

ferrand
 Posté le 20/04/2013 à 11:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

En effet, pas compatible avec formule ! Mais d'un autre côté, ton TextBox ne peut se mettre à jour automatiquement s'il n'est pas lié (se met à jour lorsque tu modifies sa valeur manuellement, déclenchant ainsi l'évènement Change)...

Pour trouver une solution, faut remonte plus loin dans les changements : W20 varie en fonction de G18 et G24. Qu'est-ce qui fait varier ces deux dernières cellules ?

A+

Lui
 Posté le 20/04/2013 à 11:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

ferrand a écrit :

En effet, pas compatible avec formule ! Mais d'un autre côté, ton TextBox ne peut se mettre à jour automatiquement s'il n'est pas lié (se met à jour lorsque tu modifies sa valeur manuellement, déclenchant ainsi l'évènement Change)...

Pour trouver une solution, faut remonte plus loin dans les changements : W20 varie en fonction de G18 et G24. Qu'est-ce qui fait varier ces deux dernières cellules ?

A+

Elles varient en fonction de ce que je tape au clavier dans 2 autres textBox
J'ai ajouté un bouton "calculé" qui fait appel un un userform2 qui contient une textbox "résultat"
mais c'est pareil, le résultat ne s'affiche que si je clic dedans et que je tape espace

Voila une capture

ferrand
 Posté le 20/04/2013 à 11:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Donc, tu as un TextBox qui alimente G18 et un autre qui alimente G24. C'est à partir des évènements Change de chacun de ces TextBox qu'il te faut mettre à jour le TextBox23 !

Copie ta commande de mise en forme : TextBox23.Value= Format(Range("W20").Value, "0")

dans la procédure Change de chacun des deux autres TextBox, et tu l'effaces du TextBox23.

Lui
 Posté le 20/04/2013 à 12:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Tu es au TOP{#}{#}{#}{#}{#}{#}{#}{#}

Un grand merci à toi, et merci pour ta patience !!!!!!!!



Lui
 Posté le 21/04/2013 à 16:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Salut à tous, salut ferrand ,

Je souhaite imprimer uniquement les labels et textbox de ma compo


J'ai mis un bouton imprimer, avec en code " userform1.printform "
ça marche, mais ça imprime tout, un peu comme une impression ecran.

Est-il possible d'imprimer que les label et les texbox ?

Ici quelqu'un a posé la question et note résolu, mais je n'arrive pas à mettre en oeuvre
http://www.siteduzero.com/forum/sujet/imprimer-vb-net-22973

Publicité
ferrand
 Posté le 21/04/2013 à 18:44 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Ton bouton est dans le Userform ?

NB: ton lien concerne VB.Net, pas VBA.

Lui
 Posté le 21/04/2013 à 19:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Oui dans l'userform

NB: ton lien concerne VB.Net, pas VBA.

Je comprends pourquoi ça marchait pas

ferrand
 Posté le 21/04/2013 à 22:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Ta commande devrait fonctionner, j'ai fait un essai, ça imprime bien l'Userform.

Lui
 Posté le 21/04/2013 à 23:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

ferrand a écrit :

Ta commande devrait fonctionner, j'ai fait un essai, ça imprime bien l'Userform.

Oui, je sais qu'elle fonctionne.{#}

je cherche à imprimer juste les valeurs ecrites dans les textbox

ainsi que les label, tout imprimer sauf le userform .

je me doute que ça doit pas etre facile...

ferrand
 Posté le 21/04/2013 à 23:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Pa possible à ma connaissance. Ces éléments sont imprimables sur un objet support accessible à une commande d'impression : userform ou feuille de calcul.

Lui
 Posté le 21/04/2013 à 23:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

ok encore merci de t'être penché sur mon problème.

Bonne soirée l'ami.

Lui
 Posté le 28/04/2013 à 11:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Hello, c'est encore moi

Sur une feuille nomée "villes" j'ai la liste des noms des villes en A1:A39147
la colonne à côté les codes postaux B1:B39147

Dans un userform, j'ai 2 listbox modifiables
Je souhaite que lorsque j'ecris ou choisi un code postal, la ville associée s'incrive automatiquement et inversement
quand j'ecris la ville, le code pôstal doit s'afficher.

Aussi, la possibilité d'etendre ces listes, car les cedex n'y sont pas, et je souhaite pouvoir les ajouter en completant les listbox

Jusque là, quand je tape un début de ville ou de CP, l'autocompletion fonctione et me fait des propositions.

Merci

ferrand
 Posté le 29/04/2013 à 11:44 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Salut,

J'ai l'impression que tu te compliques un peu la vie avec cette multiplication de contrôles... Tu aurais pu affecter l'ensemble de la plage (col. A et B) à un seul contrôle...

A défaut de modèle ou de description plus précise, prenons la situation que tu décris :

• dans ComboBox1, tu listes tes villes

• dans ComboBox2, tu listes tes codes postaux.

Quand on change la sélection dans une des listes, tu veux que l'autre s'aligne :

Private Sub ComboBox1_Change()
ComboBox2.ListIndex = ComboBox1.ListIndex
End Sub

Private Sub ComboBox2_Change()
ComboBox1.ListIndex = ComboBox2.ListIndex
End Sub

Voilà qui devrait donner le résultat attendu !

Etendre les listes : Je suppose que tu as affecté chaque liste à la propriété RowSource du contrôle correspondant, sous la forme A1:A39147 et B1:B39147.

Au lieu de définir les listes sous forme de références de plages, il te faut nommer chaque plage (liste) et c'est ce nom que tu indiques en propriété RowSource. Pour que chaque liste s'adapte aux variations, il faut la nommer de façon dynamique, c'est à dire au moyen d'une formule.

Exemple : si tes listes se trouvent sur Feuil3

Tu nommes une plage Ville : tu la définis par : =DECALER(Feuil3!$A$1;;;NBVAL(Feuil3!$A:$A);1)

et une autre CodePostal, définie par : =DECALER(Feuil3!$B$1;;;NBVAL(Feuil3!$A:$A);1)

(NB: Tu noteras que je dimensionne les 2 listes sur la même colonne [NBVAL], de façon qu'en cas d'erreur de saisie de ta part, on assure même dimension aux 2 listes (différence pourrait provoquer erreur d'exécution lors d'une sélection...))

Lui
 Posté le 29/04/2013 à 18:35 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

ferrand a écrit :

Salut,

J'ai l'impression que tu te compliques un peu la vie avec cette multiplication de contrôles... Tu aurais pu affecter l'ensemble de la plage (col. A et B) à un seul contrôle...

A défaut de modèle ou de description plus précise, prenons la situation que tu décris :

• dans ComboBox1, tu listes tes villes

• dans ComboBox2, tu listes tes codes postaux.

Quand on change la sélection dans une des listes, tu veux que l'autre s'aligne :

Private Sub ComboBox1_Change()
ComboBox2.ListIndex = ComboBox1.ListIndex
End Sub

Private Sub ComboBox2_Change()
ComboBox1.ListIndex = ComboBox2.ListIndex
End Sub

Voilà qui devrait donner le résultat attendu !

Etendre les listes : Je suppose que tu as affecté chaque liste à la propriété RowSource du contrôle correspondant, sous la forme A1:A39147 et B1:B39147.

Au lieu de définir les listes sous forme de références de plages, il te faut nommer chaque plage (liste) et c'est ce nom que tu indiques en propriété RowSource. Pour que chaque liste s'adapte aux variations, il faut la nommer de façon dynamique, c'est à dire au moyen d'une formule.

Exemple : si tes listes se trouvent sur Feuil3

Tu nommes une plage Ville : tu la définis par : =DECALER(Feuil3!$A$1;;;NBVAL(Feuil3!$A:$A);1)

et une autre CodePostal, définie par : =DECALER(Feuil3!$B$1;;;NBVAL(Feuil3!$A:$A);1)

(NB: Tu noteras que je dimensionne les 2 listes sur la même colonne [NBVAL], de façon qu'en cas d'erreur de saisie de ta part, on assure même dimension aux 2 listes (différence pourrait provoquer erreur d'exécution lors d'une sélection...))

Hello, je te remercie pour ton aide,


Voici un retour.

Concernant :

Private Sub ComboBox1_Change()
ComboBox2.ListIndex = ComboBox1.ListIndex
End Sub

Private Sub ComboBox2_Change()
ComboBox1.ListIndex = ComboBox2.ListIndex
End Sub

C'est parfait, exactement ce que je cherchais !

En suite, etendre les listes:

Impossible de rajouter un code postal ex: 20146 Ajaccio cedex 9 en passant par les textbox listbox

La solution, afficher la feuille nommée villes et ajouter une ligne avec les nouveaux CP/villes, mais ça je ne veux pas.

Je souhaite que l'utilisateur puisse rajouter une ville ou un CP depuis les textBox listbox. La feuille sera en lecture seule et avec mot de passe pour toutes modifications.

Où alors j'ai fais une erreur quelque part {#}

à te lire

edit=correction



Modifié par Lui le 29/04/2013 19:04
Publicité
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
7,99 €Souris sans fil Logitech M171 à 7,99 €
Valable jusqu'au 11 Août

Amazon fait une promotion sur la souris sans fil Logitech M171 qui passe à 7,99 € au lieu de 13,90 € ailleurs. Branchez simplement le récepteur 2,4 GHz fourni sur un port USB de votre ordinateur et profitez d'une portée jusqu'à 10 mètres. Cette souris peut fonctionner 12 mois sur une seule pile AA. Plutôt robuste, vous pourrez l'emmener partout avec vous !


> Voir l'offre
66,90 €Kit de 16 Go (2 x 8 Go) de mémoire DDR4 Corsair Vengeance LPX 3200 MHz à 66,90 €
Valable jusqu'au 16 Août

Amazon fait une belle promotion sur le kit de 16 Go (2x8 Go) de mémoire DDR4 Corsair Vengeance LPX 3200 MHz qui passe à 66,90 € livrée gratuitement.


> Voir l'offre
19,99 €Clé USB 3.0 et Micro USB Sandisk Ultra OTG 128 Go à 19,99 €
Valable jusqu'au 12 Août

Amazon fait une promotion la nouvelle version de la clé USB 3.0 SanDisk Dual Drive 128 Go qui passe à 19,99 €. La particularité de cette clé USB réside dans le fait qu'elle dispose à la fois d'un connecteur USB pour la brancher sur votre ordinateur ou votre TV, mais également d'un connecteur micro USB pour la brancher sur votre smartphone ou votre tablette. Compatible USB 3.0 (et 2.0), cette clé USB offre des débits jusqu'à 150 Mo/s. 


> Voir l'offre

Sujets relatifs
Excel 2007 résultat formule dans une autre cellule
afficher un calendrier dans une macro de cellule
Résultat dans une cellule excel
case à cocher dans cellule Excel 2010
Recopie cellule dans un autre classeur
Word 2007-Texte centré dans une cellule
Ne pas afficher les titres dans Word 2007
macro afficher masquer lignes tableau dans word 2010
afficher une cellule en fonction d'une autre cellule
toutes les données dans une cellule
Plus de sujets relatifs à Afficher résultat cellule dans textBox sans virgule
 > Tous les forums > Forum Bureautique