aaliyan
Messages postés104Date d'inscriptionsamedi 12 mars 2005StatutMembreDernière intervention30 avril 2007
-
27 mars 2007 à 14:00
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 2008
-
27 mars 2007 à 15:57
Bonjour à tous,
Je voudrai
savoir comment parcourir, sous VBA/Excel, une série de TextBox (Une
textbox sous Excel est une zone de texte) pour voir si un mot
déterminé y figure.
Après réflexion je ne sais pas trop par ou commencer,
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 27 mars 2007 à 15:28
Sub Macro1()
'Sélectionne la zone de texte
ActiveSheet.Shapes("Text Box 1").Select
'Cherche le mot toto dans la zone de texte
Found = InStr(1, Selection.Characters.Text, "toto", vbTextCompare)
'Si il est trouvé found <> 0
If Found <> 0 Then MsgBox "Le mot a été trouvé"
End Sub
Drikce 06
Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
aaliyan
Messages postés104Date d'inscriptionsamedi 12 mars 2005StatutMembreDernière intervention30 avril 2007 27 mars 2007 à 15:42
Merci Drikce
Avec modification de code, car dans mon cas, je ne peux pas connaitre le nom du shape, et je place le texte cherché dans une variable, ça donne ceci :
For Each Sh In Worksheets("Feuille1").Shapes
If Sh.Type = msoTextBox Then
Sh.Select
Found = InStr(1, Selection.Characters.Text, ini, vbTextCompare) 'ini est la variable là ou le texte recherché est stocké'
If Found = 0 Then 'Action si on l'a pas trouvé'
End If
Next
Encore merci à Drikce06.
Vous n’avez pas trouvé la réponse que vous recherchez ?
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 27 mars 2007 à 14:10
Personnellement je ne sais pas lire le texte qui se trouve dans une zone de texte faite avec la barre d'outil dessin! Désolé!
Mais une TextBox c'est un contrôle et non une zone de texte!
Drikce 06
Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
aaliyan
Messages postés104Date d'inscriptionsamedi 12 mars 2005StatutMembreDernière intervention30 avril 2007 27 mars 2007 à 15:00
Excuse moi jmfmarques, mais j'aimerai savoir où il faut que je poste (le thème que je choisi lors du nouveau message) mon sujet pour avoir une réponse, parce que la, je bloque vraiment. Merci.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 27 mars 2007 à 15:08
Cette fois-ci, aaliyan, oui : tu es dans la bonne section.
Ce qui ne va par contre pas et qui n'ira jamais, c'est de confondre le dessin d'un texte avec un texte.
Le deuxième est analysable, mais pas le 1er (sauf à utiliser un excellent OCR).
Ton affaire serait donc réalisable s'il s'agfissait de texte dans des cellules (ou dans une textbox sur un userform) mais pas de texte dessiné dans ce qui est apparemment une shape (je me demande comment, d'ailleurs, on peut dessiner sous VBA dans une shape,.... mais je connais mal VBA ...- bien que je pense que tu te réfères à autre chose encore....).
En résumé : s'il s'agit de vrai texte dans des cellules, oui... si tel n'est pas le cas : non ... bien évidemment)
aaliyan
Messages postés104Date d'inscriptionsamedi 12 mars 2005StatutMembreDernière intervention30 avril 2007 27 mars 2007 à 15:20
Tiens c'est le code pour créer une shape :
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, e.Cells(i - 10, 36).Left, e.Cells(i - 10, 36).Top, _ 'Emplacement dans la feuille'
4 * Range("B10").Width, (q.Cells(i, 11) * 2) * Range("B10").Height / l).Select 'Taille de la Text Box'
Selection.Characters.Text = "Texte écrit dans la shape"
With Selection.Characters(Start:=1, Length:=40).Font
.Name = pcm 'Police, entré dans une variable'
.FontStyle = "Normal"
.Size = tpcm 'taille police entré dans une variable'
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 0
End With
Selection.ShapeRange.Fill.ForeColor.SchemeColor = k 'couleur de la tex box entré dans une variable'
Selection.HorizontalAlignment = xlCenter