Bonjour,
Je testouille et voila mon PB,
J'ai plusieurs Zone de Text dans une feuille, des groupés et d'autre non.
Le nom pour les groupes de TextBox et les TextBox ne doit pas être modifié (important pour mes manip après).
Ma Macro détermine si dans ma feuille j'ai des TextBox ou des groupes de TexteBox et affiche leur nom dans des MsgBox.
Pour cela quant elle rencontre un groupe de TextBox elle le dégroupe pour plutard les manipuler (donc perte du groupe et de son nom) puis lis le nom des TextBox et les regroupe (donc crée un nouveau nom) et donc renomme le groupe de son ancien nom.
Ma macro quand elle rencontre des TextBox non grouper sa va.
Mais pour les groupes de TextBox : à la première rencontre elle dégroupe bien les deux TextBox et les regroupe bien avec le bon NOM
mais à la 2em rencontre ça plante ! dans le code :avec le message du débugeur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set S = Fe.Shapes.Range(Tbl).Group
[Erreur Execution 1004 le groupage est désactivé pour les formes sélectionnées.]
késako ?
en gros je veux une macro qui manipule des TextBox ou Groupe de TextBox par leur NOM dans une feuille,
les grouper dégrouper, changer le texte l’intérieur d'un groupe à un membre Nommé, changer la position,
Lino
Ci-Joint mon fichier
Infos après plantage :
Après le plantage revenir sur la feuille <Model etiquette 1>
Sélectionner <ZoneText1> <ZoneText2> qui n'ont pas été regroupé suite au plantage et les grouper sous le nom <GroupeEQT>
la Macro :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 Sub Recup_Name_Group_et_sousGroup() ' Dim Fe As Worksheet Dim Tbl() As Variant Dim S As Shape Dim Sh As Shape Dim i As Integer Dim J As Integer Dim oldnamegroup As String Dim namegroupcrea As String Set Fe = Sheets("Model etiquette 1") For Each S In Fe.Shapes 'Si le shape fait parti d'un groupe If S.Type = msoGroup Then MsgBox "Nom du GROUP : <" & S.Name & ">" oldnamegroup = S.Name For i = 1 To S.GroupItems.Count 'boucle sur le groupe afin de récupérer les noms des différents shapes composant le groupe J = J + 1 ReDim Preserve Tbl(1 To J) Tbl(J) = S.GroupItems(i).Name 'MsgBox S.GroupItems(i).Name Next i 'Dégroupe Fe.Shapes(S.Name).Ungroup 'Parcour les différents shapes du groupe et affecte la valeur voulue au shape (OptionButton et ChekBox) si tant est qu'il est une proriété "Value" For i = 1 To UBound(Tbl) On Error Resume Next 'si pas de propriété "Value" MsgBox "Nom du Sous GROUP : <" & Fe.Shapes(Tbl(i)).Name & ">" Next i 'annule la gestion des erreurs On Error GoTo 0 'Reconstitue le groupe AVEC le Bon NOM !!! Set S = Fe.Shapes.Range(Tbl).Group ' Message du debugeur : ERREUR 1004 le groupage est déactivé pour les formes sélectionnées MsgBox "Nom Voulu : <" & oldnamegroup & ">" & "Nom Temporaire : <" & S.Name & ">" S.Name = oldnamegroup oldnamegroup = "" namegroupcrea = "" Erase Tbl 'Vide le tableau J = 0 ElseIf S.Type = msoTextBox Then MsgBox "NOT A GROUP : " & S.Name & " Type : <" & S.Type & ">" Else MsgBox "NOT A GROUP OR TEXTBOX ! What is it ? " & S.Name & " Type : <" & S.Type & ">" End If Next End Sub
Partager