Récupération valeur suivant texte de la ligne

Signaler
Messages postés
90
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
12 décembre 2007
-
Messages postés
20
Date d'inscription
mardi 28 septembre 2004
Statut
Membre
Dernière intervention
22 mai 2008
-
Bonjour à tous, et d’avance bonnes fêtes de fin d’année 

J


<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>








 






Je voudrai vous faire part d’un petit truc auquel je ne trouve toujours pas de solution.






 






Je souhaiterai copier dans des textox (dans excel) un texte.






 






Par exemple, ce texte pourrait être dans la première txt :






 







Arbre à pommes ( 5 cageots )







Pommes juteuses







Prix : 1 ?uro








 








Arbe à citrons ( 2 cageots )







Citrons acides







Prix : 2 ?uro








 









... 









 







Dans la deuxième :







 








Entrepot ( Niveau 2 )







Permet de stocker les différentes marchandises.







Utilise 50m²







Prix : 500 ?uro 50 Centimes








 








Administration







Gère les différents contacts







Utilise 20m²







Prix : 1000 ?uro








 ...







Dans la troisème :







 








Camion   20







Camionnettes   25          jaune








 









 ...







Dans la quatrième :







 








Générateur ( 8 batteries, 12 disponibles)







Permet la production d’electricité de l’exploitation







Prix : 100?uro








 








Arbre ( 8 arbres, 2 disponibles )







Sert à la fabrication de fruits.







Prend une place dans l’exploitation







Prix : 50 ?uro








 
















 







 






Bref, les textbox comporterait ce genre d’information (et je précise que ce n’est qu’un exemple :p).





Je souhaiterai donc, en appuyant sur un bouton, qu’une analyse soit faite dans chaque textbox, et mette dans la Range(« B3 ») la valeur 5 (c-a-d le nombre de pommes), dans le Range (« C3 ») la valeur 2 (niveau de l’entrepot), Range(« D3 ») la valeur 8 (le nombre de batterie).






 






Il s’agit ici d’un exemple regroupé. C’est-à-dire que dans une textbox, tout sera sous la même forme :






NOM_PRODUIT ( NOMBRE cageots )






DESCRIPTION







PRIX








Dans une autre Textbox :






BÂTIMENT ( Niveau NIVEAU )






DESCRIPTION







PRIX








Et dans la dernière :






( NOMBRE NOMBRE disponible ).






DESCRIPTION







PRIX



Mon problème vient essentiellement du fait que je n'arrive pas à faire une requête du genre "SI "Arbre à pomme" appartient à la ligne ALORS Range("B3") = 5ème mot de la phrase"

J'espère que vous comprenez clairement ce que je veux dire. En réalité, la description et le prix m'importent peu, je souhaite simplement que s'il reconnait tel ou tel début de phrase, il aille chercher la valeur du mot placé en telle position (position variant d'une textbox à l'autre).

Je suis à votre entière disposition pour de plus amples information, et je vous remercie d'avance pour l'aide qui me sera apportée :)

6 réponses

Messages postés
20
Date d'inscription
mardi 28 septembre 2004
Statut
Membre
Dernière intervention
22 mai 2008

Bonjour,

ben , je n'ai rien compris...alors si tu peux me (nous) donner juste un exemple avec deux items dans chaque box ?
et ta query avec ? svp...

scuse a+
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Est-ce nécessaire les textbox ?
Sont-ils sur la feuille ou dans un UserForm ?

MPi²
Messages postés
90
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
12 décembre 2007

Je copierai donc dans une sheet les valeurs dans différentes textbox : http://hostimg.free.fr/files/jwsrsheet1.jpg
Et en appuyant sur les boutons "Analyser", ca remplirait les cellules en positions 2 avec les valeurs numériques :
http://hostimg.free.fr/files/7nl9sheet2.jpg
Messages postés
20
Date d'inscription
mardi 28 septembre 2004
Statut
Membre
Dernière intervention
22 mai 2008

ah bien, on voit mieux la difficulté...

mais tes texbox non pas de 'structure' unique...
par exemple 8 batteries, 12 disponibles
tu as deux 'chiffres' différents ?!, à part l'ananlyse des 'mots' clés que tu dois connaitre avant, du genre 'ne pas prendre 'disponibles', mais batteries ...

ta structure complique l'analyse:
à mon avis, donne un codage plus systématique à ta structure (sauf si tu récupères çà d'une autre source , mais alors analyse directement cette source (plage de données plus facile à analyser que le contenu d'un textbox)...

mais, ...de base il te faut utiliser des fonctions comme cherche un caractère particulier comme la parenthèse, qui pourrait être ton élément 'structurant':
derrière une parenthèse: toujours le nombre, sans espaces...
ce serait un moyen plus simple de résoudre ton problème...

sinon comment déterminer où commence et ou fini ta donnée 'utile', puisque tu peux avoir deux nombres sur la meme ligne...
bref,
penses tu pouvoir systématiser un code de saisie de ce nombre 'utile' ?

xxxxx(nombre) on sait qu'on ira chercher entre deux parenthèses, etc...

car, à ce moment là, on peut mieux chercher l'élément clé...
ben, je connais pas très bien le codage VB, mais la programmation oui...
et tout ton problème est 'en amont' de ta question...

bon courage !
Messages postés
90
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
12 décembre 2007

Et bien dans la première textbox, je chercherai par exemple le terme "Arbre à pommes (", et je prendrai le mot suivant, de même pour "Arbre à citrons (".

Pour la 2ème, je chercherai tout ce qui se trouve en avant dernière position dans la phrase si "Entrepot" se trouve dans la phrase, même chose pour administration (où j'ai oublié de mettre "( Niveau 1 )" sur le printscreen, désolé :) .

Pour la 3eme, je prendrai le 2eme mot, en faisant toujours une recherche sur le premier mot.

Et concernant la 4eme texbox, je ferrai une recherche sur "generateur (", en prenant le mot qui suit.



Mon problème majeur est de savoir traduire la query qui veut dire "SI "Générateur (" est dans la ligne ALORS Range(XX) = [3ème_mot]"
Messages postés
20
Date d'inscription
mardi 28 septembre 2004
Statut
Membre
Dernière intervention
22 mai 2008

je peut te donner en macro Excel VB, l'idée du code qui va bien,
si ton texte est dans une cellule (ce que tu peux toujours faire dans une feuille annexe...mettre les lignes de tes texbox en lignes, colonnes)...

Sub chercheUneChaine()
'
' chercheUneChaine Macro
' Macro enregistrée le 12/12/2007 par 1084417
'

' en B16 : met 'arbres (42)' par exemple

' chercher le (
Range("B17").Select
ActiveCell.FormulaR1C1 = "=SEARCH(""("",R[-1]C,1)"
' chercher le ) à partir de la position précédente trouvée
Range("B18").Select
ActiveCell.FormulaR1C1 = "=SEARCH("")"",R[-2]C,R[-1]C)"
' extraction du nombre entre ces deux parenthèses
Range("B19").Select
ActiveCell.FormulaR1C1 = "=MID(R[-3]C,R[-2]C+1,R[-1]C-R[-2]C-1)"

Range("B20").Select
ActiveCell.FormulaR1C1 = "fin"
Range("B21").Select
End Sub


je ne connais pas bien le VB 'pur', mais je me débrouille toujours avec Excel...alors...je passe souvent par çà pour décortiquer (par étapes) ce que je veux faire...
a+

a+