Sélectionner mes zones de texte avec VBA pour excel [Résolu] - VB/VBA/VBS - Programmation
Marsh Posté le 19-02-2008 à 13:17:34
Re,
Apparemment, l'instruction suivante est inutile dans le code:
Dim i%, myAr() As Variant
Marsh Posté le 19-02-2008 à 16:01:00
Bonjour, comment va?
je suppose que ta ligne myAr(i) = "Text Box " & i
est écrite dans ton code comme ceci: myAr(i) = "TextBox" & i
Comment as-tu incorporé l'image?
J'ai fait l'essai avec un coller d'un print screen, et je n'ai pas de pb
Cordialement
Marsh Posté le 19-02-2008 à 17:00:13
seniorpapou a écrit : Bonjour, comment va? |
Salut Senior
Ça faisait un sacré moment.Ça roule pour moi.Tu vas bien?
J'appuie sur la touche Impr écran et je colle sur excel.
Ensuite, comme je le disais, si je dessine mes zones de texte sur ce que je viens de coller et que je lance la macro, elle me retourne le message d'erreur cité plus haut.Par contre, si je dessine mes zonnes de texte en dehors et que je les déplace sur mon collage, la macro fonctionne tout à fait correctement.L'instruction dont tu parles s'écrit bien de la façon indiquée (je n'ai fait qu'un copier/coller).Ou alors, comme je l'ai indiqué, le code peut s'écrire:
Dim myAr(1 To 4)
'La 1ère instruction étant inutile (en tout cas selon moi), j'écris Dim et non Redim
'Dans tous les cas, en conservant la macro telle qu'elle figure sur le site, je vois ce fameux message d'erreur
For i = 1 To 4
myAr(i) = "Text Box " & i
Next
Marsh Posté le 19-02-2008 à 17:12:06
ReplyMarsh Posté le 19-02-2008 à 19:41:30
seniorpapou a écrit : re, as-tu essayé avec "TextBox" & i |
Je vais essayer demain et je te répondrai alors.
Marsh Posté le 20-02-2008 à 07:47:03
Bonjour,
Comme convenu, j'ai essayé.Je vais essayer d'être clair.
1/J'ai essayé avec "TextBox" & i c'est-à-dire sans espace entre TextBox et les guillemets.J'ai mon message d'erreur quelque soit le cas de figure.
2/J'ai essayé à nouveau avec "TextBox " & i et je rencontre toujours mon problème.
Par contre, je dois signaler que dans les 2 cas ("TextBox" & i ou "TextBox " & i ), la ligne ActiveSheet.Shapes.Range(myAr).Select est surlignée en jaune.
Marsh Posté le 20-02-2008 à 08:43:52
ReplyMarsh Posté le 20-02-2008 à 19:21:09
seniorpapou a écrit : Bonjour, je n'ai pas de pb sur mon ordinateur, peux-tu poster le xls? |
Petite précision: je rencontre le même problème chez moi et au taf avec le pack office 2003.
Marsh Posté le 20-02-2008 à 20:03:50
Bonsoir
Merci à toi Senior pour ta réponse.Visiblement, tu es plus rigoureux que moi.Effectivement, si j'efface mes TextBox et que j'en dessine de nouveaux, mes TextBox sont numérotés alors de 7 à 10
Sub Macro()
Dim i%, myAr() As Variant
ReDim myAr(1 To 4)
For i = 1 To 4
myAr(i) = "Text Box " & i + 6
Next
ActiveSheet.Shapes.Range(myAr).Select
End Sub
ou alors
Sub Macro3()
Dim i%, myAr() As Variant
ReDim myAr(7 To 10)
For i = 7 To 10
myAr(i) = "Text Box " & i
Next
ActiveSheet.Shapes.Range(myAr).Select
End Sub
Marsh Posté le 21-02-2008 à 07:43:20
Bonjour,
Pour connaître les noms, tu peux utiliser:
....shapes.count
....shapes(i).type
....shapes(i).name
sachant que type = 13 pour une image et 17 pour un textbox
Marsh Posté le 25-02-2008 à 10:38:18
seniorpapou a écrit : Bonjour, |
J'ai pas compris
Je voudrais savoir s'il te plait, s'il est possible de sélectionner toutes les zones de texte sans en connaître le nombre (zones que j'ai créé il y assez longtemps) ni les n°(j'ai rajouté des zones à divers endroits).
Merci
Marsh Posté le 25-02-2008 à 15:43:57
Bonsoir,
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.Type = msoTextBox Then
' ici tu fais ce que tu veux ,par exemple mettre leshp.name dans myar()
MsgBox shp.Name
End If
Next
Marsh Posté le 25-02-2008 à 16:42:37
seniorpapou a écrit : Bonsoir, |
Bonsoir,
Merci pour ton code.Impeccable comme d'habitude!
Marsh Posté le 19-02-2008 à 08:23:53
Bonjour à tous,
J'ai trouvé sur ce site: http://www.office-loesung.de/ftopic98893_0_0_asc.php
cette macro qui me permet de sélectionner plusieurs zones de texte à la fois:
Sub Macro()
Dim i%, myAr() As Variant
ReDim myAr(1 To 4)
For i = 1 To 4
myAr(i) = "Text Box " & i
Next
ActiveSheet.Shapes.Range(myAr).Select
End Sub
Je suis confronté à une difficulté que je ne comprends pas.J'ai collé sur excel une impression écran.Si je crée des zones de texte en dehors de ce collage et que je déplace ces zones sur ce collage, la macro une fois exécutée, fonctionne parfaitement.Par contre, si je dessine des zones de texte directement sur le collage,quand je lance la macro, j'ai le message suivant: Erreur d'exécution 1004:'L'élément portant ce nom est introuvable'.
Merci d'avance pour vos explications.
Message édité par TAM136 le 20-02-2008 à 20:04:21