> 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 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
203,01 €Disque dur externe Western Digital My Book 12 To USB 3.0 à 203,01 € livré
Valable jusqu'au 28 Février

Amazon Allemagne propose actuellement le disque dur externe Western Digital My Book 12 To USB 3.0 à 196,54 € (avec la TVA ajustée). Comptez 6,47 € pour la livraison en France soit un total de 203,01 € livré alors qu'on le trouve ailleurs à partir de 230 €. Avec ses 12 To et sa connectique USB 3.0 compatible USB 2.0, vous aurez de quoi stocker vos backup, vos films et vos photos, etc.  A l'intérieur, vous trouverez un disque à hélium UltraStar DC HC 520 White (12 To, 5400 tr/min, 256 Mo cache, CMR -> source satdream.tech). Le disque peut être démonté et réutilisé dans un ordinateur, un NAS, etc. Une très bonne affaire

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douane. Si vous êtes perdu en allemand, vous pouvez traduire le site en anglais.


> Voir l'offre
52,99 €SSD SanDisk Plus 480 Go à 52,99 €
Valable jusqu'au 01 Mars

Amazon fait une promotion  sur le SSD SanDisk SSD Plus 480 Go à 52,99 € livré gratuitement alors qu'on le trouve actuellement autour de 60 € ailleurs. Une bonne affaire pour ce SSD performant qui offre des débits de 535 Mo/s en lecture et 445 Mo/s en écriture. Cette version est garantie 3 ans. 


> Voir l'offre
291,73 €Smartphone Samsung M51 (6,7 pouces FHD+, 6 Go RAM, 128 Go) à 291,73 € livré
Valable jusqu'au 01 Mars

Amazon Espagne fait une belle promotion sur le nouveau smartphone Samsung M51 qui passe à 286,61 € (avec la TVA ajustée). Comptez 5,12 € pour la livraison en France soit un total de 291,73 € livré alors qu'on le trouve ailleurs à partir de 359 €. Le smartphone Samsung Galaxy M51 dispose d'un écran Super AMOLED6.7 pouces d'une résolution de 1080 x 2400 pixels, d'un processeur 8 coeurs Snapdragon 730G et 6 Go de RAM. 128 Go de stockage sont présents et sont extensibles par MicroSD (512 Go max). Pour les moments inattendus de la vie, le quadruple appareil photo est idéal. Prenez de superbes photos de votre monde avec un appareil photo principal de 64 MP ou obtenez une image plus large avec l’angle de vue de 123 ° de l’objectif ultra grand angle 12 MP. Le capteur de profondeur 5 MP ajoute un flou d’arrière-plan et l’objectif macro 5 MP optimise la mise au point sur les gros plans.  A l'avant, un appareil photo 32 MP vous permettra de réaliser vos selphies avec un léger flou d'arrière-plan grâce à la mise au point en direct. Il est soutenu par une batterie de 7000 mAh avec recharge rapide. Les fonctionnalités de connectivité du smartphone incluent WiFi, Bluetooth, GPS, Volte, etc. 

Le Galaxy M51 dispose d’un capteur d’empreinte digitale à l’arrière pour vous connecter aux applications compatibles et déverrouiller votre appareil en toute simplicité. Le tout tourne sous Android 10 en français et est garanti 2 ans. Vous pouvez commander avec votre compte Amazon FR sur Amazon ES et il n'y a pas de douane.


> 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