> 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
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

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 participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
4,37 €Etui de protection Orico pour disque dur externe 2.5 pouces à 4,37 €
7,99 € -45%

AliExpress propose actuellement l'étui de protection Orico pour disque dur externe 2.5 pouces à 4,37 €. Cet étui de qualité protège votre disque dur contre les dommages, les rayures et les chocs. La sangle élastique intérieure maintient le disque dur en place pendant le transport. Vous permettra en plus de glisser un câble, une clé USB ou des cartes mémoire. Différentes couleurs disponibles.


Voir l'offre
599 €Portable 15,6 pouces HP (FHD IPS, Ryzen 5 5500U, 16Go/512Go, Windows 11) à 599 €
699 € -14%

Leclerc fait une belle promotion sur l'ordinateur portable HP Pavilion 15-eh1029nf qui passe à 599 € au lieu de 699 €. Une bonne affaire ! Ce portable possède un écran 15.6 pouces Full HD IPS (1920x1080), un processeur AMD Ryzen 5 5500U (6 coeurs), 16 Go de RAM, un SSD NVMe de 512 Go et un chip graphique Vega 7. Le tout tourne sous Windows 11.

De quoi faire de la bureautique, surfer sur Internet, du multimédia et des petits jeux en toute tranquillité.


Voir l'offre
239,90 €TP-Link Deco X50 (WiFi 6 Mesh AX 3000 Mbit/s, jusqu'à 550 m²) x 3 à 239,90 €
380 € -37%

Amazon fait une belle promotion sur le kit TP-Link Deco X50 avec 3 satellites qui passe à 239,90 € livré gratuitement alors qu'on le trouve ailleurs à partir de 380 €. Ces 3 satellites Deco travaillent ensemble pour former un seul et unique réseau WiFi, 6 garantissant une connexion rapide importe où que vous êtes. Ils offrent une connexion Mesh WiFi 6 haut débit de 3000 Mbit/s, une couverture dans votre maison jusqu'à 550 m² et sans zone morte. Et si vous avez besoin de plus de couverture, il vous suffira de rajouter des satellites Deco.


Voir l'offre
182,21 €Ecouteurs intra sans-fil Sony WF-1000XM4 à réduction de bruit active à 182,21 € livrés
249 € -27%

Amazon Espagne fait une belle promotion sur les écouteurs intra-auriculaire sans-fil Sony WF-1000XM4 avec réduction de bruit active qui passent à 177,52 € (avec la TVA ajustée). Comptez 4,69 € pour la livraison en France soit un total de alors 182,21 € livrés qu'on les trouve ailleurs à plus de 249 €.

Les écouteurs sans fil WF-1000XM4 associent le système à réduction de bruit le plus avancé avec une qualité audio exceptionnelle, une grande autonomie et plusieurs fonctions intelligentes pour une expérience audio inégalée. Le nouveau processeur V1, spécialement développé par Sony, vous propose une réduction de bruit inégalée. La personnalisation sur 20 niveaux et le mode Ambient Sound vous permettent de rester à l'écoute des sons essentiels. Plus de réglages intelligents grâce à l'application Sony / Headphones Connect. Avec leur grande autonomie de 24h au total (écouteurs + boîtier de charge compatible charge à induction), ces écouteurs vous accompagnent tout le temps et partout grâce également à leur protection IPX4 contre la pluie et la sueur. 

Enfin, l'intégration des assistants vocaux, le mode Speak to Chat pour mettre en pause automatiquement votre musique lorsque que vous parlez et la technologie Precise Voice Pickup pour des appels mains libres clairs et précis, vous faciliteront le quotidien.


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