Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2417 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu]Sélectionner mes zones de texte avec VBA pour excel

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu]Sélectionner mes zones de texte avec VBA pour excel

n°1688163
TAM136
Posté le 19-02-2008 à 08:23:53  profilanswer
 

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
mood
Publicité
Posté le 19-02-2008 à 08:23:53  profilanswer
 

n°1688340
TAM136
Posté le 19-02-2008 à 13:17:34  profilanswer
 

Re,
 
Apparemment, l'instruction suivante est inutile dans le code:
Dim i%, myAr() As Variant

n°1688593
seniorpapo​u
Posté le 19-02-2008 à 16:01:00  profilanswer
 

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

Message cité 1 fois
Message édité par seniorpapou le 19-02-2008 à 16:01:42
n°1688715
TAM136
Posté le 19-02-2008 à 17:00:13  profilanswer
 

seniorpapou a écrit :

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


 
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  

n°1688730
seniorpapo​u
Posté le 19-02-2008 à 17:12:06  profilanswer
 

re, as-tu essayé avec   "TextBox" & i
??

n°1688840
TAM136
Posté le 19-02-2008 à 19:41:30  profilanswer
 

seniorpapou a écrit :

re, as-tu essayé avec   "TextBox" & i
??


 
Je vais essayer demain et je te répondrai alors.

n°1689033
TAM136
Posté le 20-02-2008 à 07:47:03  profilanswer
 

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.

n°1689054
seniorpapo​u
Posté le 20-02-2008 à 08:43:52  profilanswer
 

Bonjour, je n'ai pas de pb sur mon ordinateur, peux-tu poster le xls?
@+

n°1689615
TAM136
Posté le 20-02-2008 à 19:21:09  profilanswer
 

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.

n°1689659
TAM136
Posté le 20-02-2008 à 20:03:50  profilanswer
 

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

mood
Publicité
Posté le 20-02-2008 à 20:03:50  profilanswer
 

n°1689843
seniorpapo​u
Posté le 21-02-2008 à 07:43:20  profilanswer
 

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
 

n°1691799
TAM136
Posté le 25-02-2008 à 10:38:18  profilanswer
 

seniorpapou a écrit :

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
 


 
J'ai pas compris :D  
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

n°1692063
seniorpapo​u
Posté le 25-02-2008 à 15:43:57  profilanswer
 

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

n°1692152
TAM136
Posté le 25-02-2008 à 16:42:37  profilanswer
 

seniorpapou a écrit :

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


 
Bonsoir,
 
Merci pour ton code.Impeccable comme d'habitude!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu]Sélectionner mes zones de texte avec VBA pour excel

 

Sujets relatifs
Cookie ne se crée pas [RESOLU grâce à NazzTazz. MERCI !]phpMyAdmin + blob image + export Excel
EXCEL VBA - Addition de cellule et de variable ![vba excel] concatenation d'une chaine de caractère
Problème, 2 colonnes de texte en CSS[MySQL] Update dependant du numero de ligne (resolu)
[Conseil] PHP & classe Formulaires [résolu]Répartition aléatoire sur excel
[Résolu] C# et Crystal report, fichiers temporaires trop volumineux 
Plus de sujets relatifs à : [Résolu]Sélectionner mes zones de texte avec VBA pour excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR