Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macros illisibles dans Excel 2007 ?

8 réponses
Avatar
manbas
Bonjour
Je découvre que des macros concernant les shapes ne s'exécutent pas
correctement dans XL2007. Pour comprendre je lance la manoeuvre avec
l'enregistreur de macro activé, et là surprise, la macro ne s'enregistre
pas! Dans le cas précis il s'agit de créer une zone de texte et un
connecteur: seule ligne enregistrée, la cellule selectionnée.
Je perds la tête ou quoi?
Votre avis?

8 réponses

Avatar
michdenis
Bonjour Manbas,

Pour une raison que j'ignore, l'enregistreur est moins performant avec Excel 2007.

Si tu expliques ce que tu veux faire, il y a quelqu'un sur ce forum qui
aura peut être des suggestions !

L'autre alternative est d'utiliser une version antérieure d'Excel pour
enregistrer le code de l'enregistreur de macro.



"manbas" a écrit dans le message de groupe de discussion :
#$
Bonjour
Je découvre que des macros concernant les shapes ne s'exécutent pas
correctement dans XL2007. Pour comprendre je lance la manoeuvre avec
l'enregistreur de macro activé, et là surprise, la macro ne s'enregistre
pas! Dans le cas précis il s'agit de créer une zone de texte et un
connecteur: seule ligne enregistrée, la cellule selectionnée.
Je perds la tête ou quoi?
Votre avis?
Avatar
manbas
Bonjour MichDenis
C'est ce que je craignais: excel 2007 a de nouvelles limites qui
n'existaient pas avant (j'avais déjà rencontré le problème des graphiques à
deux axes).
Le code fonctionne bien dans les versions anterieures d'excel, et plus du
tout dans excel 2007.
En pratique, à partir d'un clic droit sur une cellule de la ligne 20, il
crée une zone de texte, il y adjoint un connecteur-flèche qui se dirige
verticalement vers la ligne 20, il groupe les deux pour les déplacer au
contact de la ligne 20, sur la colonne d'où est parti le clic droit. Il y a
les codes pour "au-dessus" et "au-dessous" de la ligne, et 3 longueurs
differentes de connecteurs-fleches, ce qui permet (par un userform) de
choisir parmi 6 emplacements de zones de texte.

Le code (amateur +++) n'a rien de secret, et si tu y apporte des corrections
tant mieux! Mais je répète qu'il fonctionne correctement dans XL2003.

Sub BulleSupIntermed()
Dim commentaire
commentaire = uf_Bulles.TextBox1.Value
If commentaire = "" Then MsgBox "Vous n'avez rien écrit"
Dim dH, dG
dH = ActiveCell.Offset(-18, 0).Top
dG = ActiveCell.Left
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, dG, dH, 10,
10).Select
With Selection
.Characters.Text = commentaire
.AutoSize = True 'taille adapté au texte
.Locked = False
.LockedText = False
End With
With Selection.Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Dim ancienD, nouveauD, ancienF, nouveauF, var, larg, diff
ancienD = Selection.Name
nouveauD = "D"
Selection.Name = nouveauD
ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 70, 70, 1.5,
12#).Select
Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
Selection.Locked = False
'place la forme au-dessUs de la ligne
Selection.ShapeRange.ConnectorFormat.BeginConnect ActiveSheet.Shapes("D"), 3
'point de connection milieu face inf
[Totaux!Compteur].Value = [Totaux!Compteur].Value + 1
var = [Totaux!Compteur].Value
ancienF = Selection.Name
nouveauF = "F"
Selection.Name = nouveauF
Selection.ShapeRange.item("F").Height = 100
Selection.ShapeRange.item("F").Width = 0#
Selection.ShapeRange.item("F").Flip msoFlipVertical
Selection.Name = "F" & var 'la flèche est renommée F" &
[Totaux!Compteur].value
ActiveSheet.Shapes("D").Select
Selection.Name = "D" & var 'la zone de texte est renommée D" &
[Totaux!Compteur].value
ActiveSheet.Shapes.Range(Array("D" & var, "F" & var)).Select
Selection.ShapeRange.Group.Select
Selection.ShapeRange.IncrementTop 114
larg = Selection.ShapeRange.Width
diff = (larg / 2)
Selection.ShapeRange.IncrementLeft -diff + 5 'déplace le groupe vers la
gauche _
sur une distance égale à la moitié de sa largeur _
+2 pour éviter qu'il soit sur la même verticale sur SupEloign
Selection.ShapeRange.Ungroup.Select
End Sub




"michdenis" a écrit dans le message de
news:
Bonjour Manbas,

Pour une raison que j'ignore, l'enregistreur est moins performant avec
Excel 2007.

Si tu expliques ce que tu veux faire, il y a quelqu'un sur ce forum qui
aura peut être des suggestions !

L'autre alternative est d'utiliser une version antérieure d'Excel pour
enregistrer le code de l'enregistreur de macro.



"manbas" a écrit dans le message de groupe de
discussion :
#$
Bonjour
Je découvre que des macros concernant les shapes ne s'exécutent pas
correctement dans XL2007. Pour comprendre je lance la manoeuvre avec
l'enregistreur de macro activé, et là surprise, la macro ne s'enregistre
pas! Dans le cas précis il s'agit de créer une zone de texte et un
connecteur: seule ligne enregistrée, la cellule selectionnée.
Je perds la tête ou quoi?
Votre avis?



Avatar
michdenis
Bonjour Manbas,

| excel 2007 a de nouvelles limites qui n'existaient pas avant

Je dirais plutôt le contraire, Excel 2007 offre des possibilités
que les versions précédentes ignorent. Sauf que l'enregistreur
de macro éprouve quelques difficultés qui devraient être corrigé
je suppose lors d'un futur Sp x

J'ai exécuté ton code sous Excel 2007, je n'ai rien à signaler
ton code fonctionne bien. En tout cas, il ne génère aucune
erreur. Quelle difficulté rencontres-tu ?

J'ai simplement donné une valeur fictive à la variable "Var"
var = [Totaux!Compteur].Value





"manbas" a écrit dans le message de groupe de discussion :

Bonjour MichDenis
C'est ce que je craignais: excel 2007 a de nouvelles limites qui
n'existaient pas avant (j'avais déjà rencontré le problème des graphiques à
deux axes).
Le code fonctionne bien dans les versions anterieures d'excel, et plus du
tout dans excel 2007.
En pratique, à partir d'un clic droit sur une cellule de la ligne 20, il
crée une zone de texte, il y adjoint un connecteur-flèche qui se dirige
verticalement vers la ligne 20, il groupe les deux pour les déplacer au
contact de la ligne 20, sur la colonne d'où est parti le clic droit. Il y a
les codes pour "au-dessus" et "au-dessous" de la ligne, et 3 longueurs
differentes de connecteurs-fleches, ce qui permet (par un userform) de
choisir parmi 6 emplacements de zones de texte.

Le code (amateur +++) n'a rien de secret, et si tu y apporte des corrections
tant mieux! Mais je répète qu'il fonctionne correctement dans XL2003.

Sub BulleSupIntermed()
Dim commentaire
commentaire = uf_Bulles.TextBox1.Value
If commentaire = "" Then MsgBox "Vous n'avez rien écrit"
Dim dH, dG
dH = ActiveCell.Offset(-18, 0).Top
dG = ActiveCell.Left
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, dG, dH, 10,
10).Select
With Selection
.Characters.Text = commentaire
.AutoSize = True 'taille adapté au texte
.Locked = False
.LockedText = False
End With
With Selection.Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Dim ancienD, nouveauD, ancienF, nouveauF, var, larg, diff
ancienD = Selection.Name
nouveauD = "D"
Selection.Name = nouveauD
ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 70, 70, 1.5,
12#).Select
Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
Selection.Locked = False
'place la forme au-dessUs de la ligne
Selection.ShapeRange.ConnectorFormat.BeginConnect ActiveSheet.Shapes("D"), 3
'point de connection milieu face inf
[Totaux!Compteur].Value = [Totaux!Compteur].Value + 1
var = [Totaux!Compteur].Value
ancienF = Selection.Name
nouveauF = "F"
Selection.Name = nouveauF
Selection.ShapeRange.item("F").Height = 100
Selection.ShapeRange.item("F").Width = 0#
Selection.ShapeRange.item("F").Flip msoFlipVertical
Selection.Name = "F" & var 'la flèche est renommée F" &
[Totaux!Compteur].value
ActiveSheet.Shapes("D").Select
Selection.Name = "D" & var 'la zone de texte est renommée D" &
[Totaux!Compteur].value
ActiveSheet.Shapes.Range(Array("D" & var, "F" & var)).Select
Selection.ShapeRange.Group.Select
Selection.ShapeRange.IncrementTop 114
larg = Selection.ShapeRange.Width
diff = (larg / 2)
Selection.ShapeRange.IncrementLeft -diff + 5 'déplace le groupe vers la
gauche _
sur une distance égale à la moitié de sa largeur _
+2 pour éviter qu'il soit sur la même verticale sur SupEloign
Selection.ShapeRange.Ungroup.Select
End Sub




"michdenis" a écrit dans le message de
news:
Bonjour Manbas,

Pour une raison que j'ignore, l'enregistreur est moins performant avec
Excel 2007.

Si tu expliques ce que tu veux faire, il y a quelqu'un sur ce forum qui
aura peut être des suggestions !

L'autre alternative est d'utiliser une version antérieure d'Excel pour
enregistrer le code de l'enregistreur de macro.



"manbas" a écrit dans le message de groupe de
discussion :
#$
Bonjour
Je découvre que des macros concernant les shapes ne s'exécutent pas
correctement dans XL2007. Pour comprendre je lance la manoeuvre avec
l'enregistreur de macro activé, et là surprise, la macro ne s'enregistre
pas! Dans le cas précis il s'agit de créer une zone de texte et un
connecteur: seule ligne enregistrée, la cellule selectionnée.
Je perds la tête ou quoi?
Votre avis?



Avatar
manbas
Tu as une zone de texte avec une flèche qui en part du milieu de son coté
inférieur, flèche verticale, pointée vers le bas?

"michdenis" a écrit dans le message de
news:
Bonjour Manbas,

| excel 2007 a de nouvelles limites qui n'existaient pas avant

Je dirais plutôt le contraire, Excel 2007 offre des possibilités
que les versions précédentes ignorent. Sauf que l'enregistreur
de macro éprouve quelques difficultés qui devraient être corrigé
je suppose lors d'un futur Sp x

J'ai exécuté ton code sous Excel 2007, je n'ai rien à signaler
ton code fonctionne bien. En tout cas, il ne génère aucune
erreur. Quelle difficulté rencontres-tu ?

J'ai simplement donné une valeur fictive à la variable "Var"
var = [Totaux!Compteur].Value





"manbas" a écrit dans le message de groupe de
discussion :

Bonjour MichDenis
C'est ce que je craignais: excel 2007 a de nouvelles limites qui
n'existaient pas avant (j'avais déjà rencontré le problème des graphiques
à
deux axes).
Le code fonctionne bien dans les versions anterieures d'excel, et plus du
tout dans excel 2007.
En pratique, à partir d'un clic droit sur une cellule de la ligne 20, il
crée une zone de texte, il y adjoint un connecteur-flèche qui se dirige
verticalement vers la ligne 20, il groupe les deux pour les déplacer au
contact de la ligne 20, sur la colonne d'où est parti le clic droit. Il y
a
les codes pour "au-dessus" et "au-dessous" de la ligne, et 3 longueurs
differentes de connecteurs-fleches, ce qui permet (par un userform) de
choisir parmi 6 emplacements de zones de texte.

Le code (amateur +++) n'a rien de secret, et si tu y apporte des
corrections
tant mieux! Mais je répète qu'il fonctionne correctement dans XL2003.

Sub BulleSupIntermed()
Dim commentaire
commentaire = uf_Bulles.TextBox1.Value
If commentaire = "" Then MsgBox "Vous n'avez rien écrit"
Dim dH, dG
dH = ActiveCell.Offset(-18, 0).Top
dG = ActiveCell.Left
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, dG, dH, 10,
10).Select
With Selection
.Characters.Text = commentaire
.AutoSize = True 'taille adapté au texte
.Locked = False
.LockedText = False
End With
With Selection.Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Dim ancienD, nouveauD, ancienF, nouveauF, var, larg, diff
ancienD = Selection.Name
nouveauD = "D"
Selection.Name = nouveauD
ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 70, 70, 1.5,
12#).Select
Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
Selection.Locked = False
'place la forme au-dessUs de la ligne
Selection.ShapeRange.ConnectorFormat.BeginConnect ActiveSheet.Shapes("D"),
3
'point de connection milieu face inf
[Totaux!Compteur].Value = [Totaux!Compteur].Value + 1
var = [Totaux!Compteur].Value
ancienF = Selection.Name
nouveauF = "F"
Selection.Name = nouveauF
Selection.ShapeRange.item("F").Height = 100
Selection.ShapeRange.item("F").Width = 0#
Selection.ShapeRange.item("F").Flip msoFlipVertical
Selection.Name = "F" & var 'la flèche est renommée F" &
[Totaux!Compteur].value
ActiveSheet.Shapes("D").Select
Selection.Name = "D" & var 'la zone de texte est renommée D" &
[Totaux!Compteur].value
ActiveSheet.Shapes.Range(Array("D" & var, "F" & var)).Select
Selection.ShapeRange.Group.Select
Selection.ShapeRange.IncrementTop 114
larg = Selection.ShapeRange.Width
diff = (larg / 2)
Selection.ShapeRange.IncrementLeft -diff + 5 'déplace le groupe vers la
gauche _
sur une distance égale à la moitié de sa largeur _
+2 pour éviter qu'il soit sur la même verticale sur SupEloign
Selection.ShapeRange.Ungroup.Select
End Sub




"michdenis" a écrit dans le message de
news:
Bonjour Manbas,

Pour une raison que j'ignore, l'enregistreur est moins performant avec
Excel 2007.

Si tu expliques ce que tu veux faire, il y a quelqu'un sur ce forum qui
aura peut être des suggestions !

L'autre alternative est d'utiliser une version antérieure d'Excel pour
enregistrer le code de l'enregistreur de macro.



"manbas" a écrit dans le message de groupe de
discussion :
#$
Bonjour
Je découvre que des macros concernant les shapes ne s'exécutent pas
correctement dans XL2007. Pour comprendre je lance la manoeuvre avec
l'enregistreur de macro activé, et là surprise, la macro ne s'enregistre
pas! Dans le cas précis il s'agit de créer une zone de texte et un
connecteur: seule ligne enregistrée, la cellule selectionnée.
Je perds la tête ou quoi?
Votre avis?






Avatar
michdenis
Tu mets ton code dans le module d'une feuille d'un classeur,
et tu publie ce classeur sur cJoint.com avec le résultat attendu.





"manbas" a écrit dans le message de groupe de discussion :

Tu as une zone de texte avec une flèche qui en part du milieu de son coté
inférieur, flèche verticale, pointée vers le bas?

"michdenis" a écrit dans le message de
news:
Bonjour Manbas,

| excel 2007 a de nouvelles limites qui n'existaient pas avant

Je dirais plutôt le contraire, Excel 2007 offre des possibilités
que les versions précédentes ignorent. Sauf que l'enregistreur
de macro éprouve quelques difficultés qui devraient être corrigé
je suppose lors d'un futur Sp x

J'ai exécuté ton code sous Excel 2007, je n'ai rien à signaler
ton code fonctionne bien. En tout cas, il ne génère aucune
erreur. Quelle difficulté rencontres-tu ?

J'ai simplement donné une valeur fictive à la variable "Var"
var = [Totaux!Compteur].Value





"manbas" a écrit dans le message de groupe de
discussion :

Bonjour MichDenis
C'est ce que je craignais: excel 2007 a de nouvelles limites qui
n'existaient pas avant (j'avais déjà rencontré le problème des graphiques
à
deux axes).
Le code fonctionne bien dans les versions anterieures d'excel, et plus du
tout dans excel 2007.
En pratique, à partir d'un clic droit sur une cellule de la ligne 20, il
crée une zone de texte, il y adjoint un connecteur-flèche qui se dirige
verticalement vers la ligne 20, il groupe les deux pour les déplacer au
contact de la ligne 20, sur la colonne d'où est parti le clic droit. Il y
a
les codes pour "au-dessus" et "au-dessous" de la ligne, et 3 longueurs
differentes de connecteurs-fleches, ce qui permet (par un userform) de
choisir parmi 6 emplacements de zones de texte.

Le code (amateur +++) n'a rien de secret, et si tu y apporte des
corrections
tant mieux! Mais je répète qu'il fonctionne correctement dans XL2003.

Sub BulleSupIntermed()
Dim commentaire
commentaire = uf_Bulles.TextBox1.Value
If commentaire = "" Then MsgBox "Vous n'avez rien écrit"
Dim dH, dG
dH = ActiveCell.Offset(-18, 0).Top
dG = ActiveCell.Left
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, dG, dH, 10,
10).Select
With Selection
.Characters.Text = commentaire
.AutoSize = True 'taille adapté au texte
.Locked = False
.LockedText = False
End With
With Selection.Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Dim ancienD, nouveauD, ancienF, nouveauF, var, larg, diff
ancienD = Selection.Name
nouveauD = "D"
Selection.Name = nouveauD
ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 70, 70, 1.5,
12#).Select
Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
Selection.Locked = False
'place la forme au-dessUs de la ligne
Selection.ShapeRange.ConnectorFormat.BeginConnect ActiveSheet.Shapes("D"),
3
'point de connection milieu face inf
[Totaux!Compteur].Value = [Totaux!Compteur].Value + 1
var = [Totaux!Compteur].Value
ancienF = Selection.Name
nouveauF = "F"
Selection.Name = nouveauF
Selection.ShapeRange.item("F").Height = 100
Selection.ShapeRange.item("F").Width = 0#
Selection.ShapeRange.item("F").Flip msoFlipVertical
Selection.Name = "F" & var 'la flèche est renommée F" &
[Totaux!Compteur].value
ActiveSheet.Shapes("D").Select
Selection.Name = "D" & var 'la zone de texte est renommée D" &
[Totaux!Compteur].value
ActiveSheet.Shapes.Range(Array("D" & var, "F" & var)).Select
Selection.ShapeRange.Group.Select
Selection.ShapeRange.IncrementTop 114
larg = Selection.ShapeRange.Width
diff = (larg / 2)
Selection.ShapeRange.IncrementLeft -diff + 5 'déplace le groupe vers la
gauche _
sur une distance égale à la moitié de sa largeur _
+2 pour éviter qu'il soit sur la même verticale sur SupEloign
Selection.ShapeRange.Ungroup.Select
End Sub




"michdenis" a écrit dans le message de
news:
Bonjour Manbas,

Pour une raison que j'ignore, l'enregistreur est moins performant avec
Excel 2007.

Si tu expliques ce que tu veux faire, il y a quelqu'un sur ce forum qui
aura peut être des suggestions !

L'autre alternative est d'utiliser une version antérieure d'Excel pour
enregistrer le code de l'enregistreur de macro.



"manbas" a écrit dans le message de groupe de
discussion :
#$
Bonjour
Je découvre que des macros concernant les shapes ne s'exécutent pas
correctement dans XL2007. Pour comprendre je lance la manoeuvre avec
l'enregistreur de macro activé, et là surprise, la macro ne s'enregistre
pas! Dans le cas précis il s'agit de créer une zone de texte et un
connecteur: seule ligne enregistrée, la cellule selectionnée.
Je perds la tête ou quoi?
Votre avis?






Avatar
manbas
voili voila
http://cjoint.com/?jtqLHHDtJb




"michdenis" a écrit dans le message de
news:
Tu mets ton code dans le module d'une feuille d'un classeur,
et tu publie ce classeur sur cJoint.com avec le résultat attendu.





"manbas" a écrit dans le message de groupe de
discussion :

Tu as une zone de texte avec une flèche qui en part du milieu de son coté
inférieur, flèche verticale, pointée vers le bas?

"michdenis" a écrit dans le message de
news:
Bonjour Manbas,

| excel 2007 a de nouvelles limites qui n'existaient pas avant

Je dirais plutôt le contraire, Excel 2007 offre des possibilités
que les versions précédentes ignorent. Sauf que l'enregistreur
de macro éprouve quelques difficultés qui devraient être corrigé
je suppose lors d'un futur Sp x

J'ai exécuté ton code sous Excel 2007, je n'ai rien à signaler
ton code fonctionne bien. En tout cas, il ne génère aucune
erreur. Quelle difficulté rencontres-tu ?

J'ai simplement donné une valeur fictive à la variable "Var"
var = [Totaux!Compteur].Value





"manbas" a écrit dans le message de groupe de
discussion :

Bonjour MichDenis
C'est ce que je craignais: excel 2007 a de nouvelles limites qui
n'existaient pas avant (j'avais déjà rencontré le problème des graphiques
à
deux axes).
Le code fonctionne bien dans les versions anterieures d'excel, et plus du
tout dans excel 2007.
En pratique, à partir d'un clic droit sur une cellule de la ligne 20, il
crée une zone de texte, il y adjoint un connecteur-flèche qui se dirige
verticalement vers la ligne 20, il groupe les deux pour les déplacer au
contact de la ligne 20, sur la colonne d'où est parti le clic droit. Il y
a
les codes pour "au-dessus" et "au-dessous" de la ligne, et 3 longueurs
differentes de connecteurs-fleches, ce qui permet (par un userform) de
choisir parmi 6 emplacements de zones de texte.

Le code (amateur +++) n'a rien de secret, et si tu y apporte des
corrections
tant mieux! Mais je répète qu'il fonctionne correctement dans XL2003.

Sub BulleSupIntermed()
Dim commentaire
commentaire = uf_Bulles.TextBox1.Value
If commentaire = "" Then MsgBox "Vous n'avez rien écrit"
Dim dH, dG
dH = ActiveCell.Offset(-18, 0).Top
dG = ActiveCell.Left
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, dG, dH,
10,
10).Select
With Selection
.Characters.Text = commentaire
.AutoSize = True 'taille adapté au texte
.Locked = False
.LockedText = False
End With
With Selection.Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Dim ancienD, nouveauD, ancienF, nouveauF, var, larg, diff
ancienD = Selection.Name
nouveauD = "D"
Selection.Name = nouveauD
ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 70, 70, 1.5,
12#).Select
Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
Selection.Locked = False
'place la forme au-dessUs de la ligne
Selection.ShapeRange.ConnectorFormat.BeginConnect
ActiveSheet.Shapes("D"),
3
'point de connection milieu face inf
[Totaux!Compteur].Value = [Totaux!Compteur].Value + 1
var = [Totaux!Compteur].Value
ancienF = Selection.Name
nouveauF = "F"
Selection.Name = nouveauF
Selection.ShapeRange.item("F").Height = 100
Selection.ShapeRange.item("F").Width = 0#
Selection.ShapeRange.item("F").Flip msoFlipVertical
Selection.Name = "F" & var 'la flèche est renommée F" &
[Totaux!Compteur].value
ActiveSheet.Shapes("D").Select
Selection.Name = "D" & var 'la zone de texte est renommée D" &
[Totaux!Compteur].value
ActiveSheet.Shapes.Range(Array("D" & var, "F" & var)).Select
Selection.ShapeRange.Group.Select
Selection.ShapeRange.IncrementTop 114
larg = Selection.ShapeRange.Width
diff = (larg / 2)
Selection.ShapeRange.IncrementLeft -diff + 5 'déplace le groupe vers la
gauche _
sur une distance égale à la moitié de sa largeur _
+2 pour éviter qu'il soit sur la même verticale sur SupEloign
Selection.ShapeRange.Ungroup.Select
End Sub




"michdenis" a écrit dans le message de
news:
Bonjour Manbas,

Pour une raison que j'ignore, l'enregistreur est moins performant avec
Excel 2007.

Si tu expliques ce que tu veux faire, il y a quelqu'un sur ce forum qui
aura peut être des suggestions !

L'autre alternative est d'utiliser une version antérieure d'Excel pour
enregistrer le code de l'enregistreur de macro.



"manbas" a écrit dans le message de groupe
de
discussion :
#$
Bonjour
Je découvre que des macros concernant les shapes ne s'exécutent pas
correctement dans XL2007. Pour comprendre je lance la manoeuvre avec
l'enregistreur de macro activé, et là surprise, la macro ne s'enregistre
pas! Dans le cas précis il s'agit de créer une zone de texte et un
connecteur: seule ligne enregistrée, la cellule selectionnée.
Je perds la tête ou quoi?
Votre avis?









Avatar
michdenis
J'ai bien sûr regardé les procédures du fichier.
Comme dit précédemment, ces procédures ne provoquent
aucune erreur.

Ma question demeure, quelle est la manouvre que tu exécutes
dans ce fichier qui génère un résultat inattendu.

A ) La manouvre doit être décrite de façon précise pour qu'un
répondant qui télécharge ton fichier puisse la reproduire.

B ) En Version 2003, quel est le résultat que tu obtiens ?
et en Version 2007, quel est le résultat obtenu versus le
résultat désiré ?





"manbas" a écrit dans le message de groupe de discussion :

voili voila
http://cjoint.com/?jtqLHHDtJb




"michdenis" a écrit dans le message de
news:
Tu mets ton code dans le module d'une feuille d'un classeur,
et tu publie ce classeur sur cJoint.com avec le résultat attendu.





"manbas" a écrit dans le message de groupe de
discussion :

Tu as une zone de texte avec une flèche qui en part du milieu de son coté
inférieur, flèche verticale, pointée vers le bas?

"michdenis" a écrit dans le message de
news:
Bonjour Manbas,

| excel 2007 a de nouvelles limites qui n'existaient pas avant

Je dirais plutôt le contraire, Excel 2007 offre des possibilités
que les versions précédentes ignorent. Sauf que l'enregistreur
de macro éprouve quelques difficultés qui devraient être corrigé
je suppose lors d'un futur Sp x

J'ai exécuté ton code sous Excel 2007, je n'ai rien à signaler
ton code fonctionne bien. En tout cas, il ne génère aucune
erreur. Quelle difficulté rencontres-tu ?

J'ai simplement donné une valeur fictive à la variable "Var"
var = [Totaux!Compteur].Value





"manbas" a écrit dans le message de groupe de
discussion :

Bonjour MichDenis
C'est ce que je craignais: excel 2007 a de nouvelles limites qui
n'existaient pas avant (j'avais déjà rencontré le problème des graphiques
à
deux axes).
Le code fonctionne bien dans les versions anterieures d'excel, et plus du
tout dans excel 2007.
En pratique, à partir d'un clic droit sur une cellule de la ligne 20, il
crée une zone de texte, il y adjoint un connecteur-flèche qui se dirige
verticalement vers la ligne 20, il groupe les deux pour les déplacer au
contact de la ligne 20, sur la colonne d'où est parti le clic droit. Il y
a
les codes pour "au-dessus" et "au-dessous" de la ligne, et 3 longueurs
differentes de connecteurs-fleches, ce qui permet (par un userform) de
choisir parmi 6 emplacements de zones de texte.

Le code (amateur +++) n'a rien de secret, et si tu y apporte des
corrections
tant mieux! Mais je répète qu'il fonctionne correctement dans XL2003.

Sub BulleSupIntermed()
Dim commentaire
commentaire = uf_Bulles.TextBox1.Value
If commentaire = "" Then MsgBox "Vous n'avez rien écrit"
Dim dH, dG
dH = ActiveCell.Offset(-18, 0).Top
dG = ActiveCell.Left
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, dG, dH,
10,
10).Select
With Selection
.Characters.Text = commentaire
.AutoSize = True 'taille adapté au texte
.Locked = False
.LockedText = False
End With
With Selection.Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Dim ancienD, nouveauD, ancienF, nouveauF, var, larg, diff
ancienD = Selection.Name
nouveauD = "D"
Selection.Name = nouveauD
ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 70, 70, 1.5,
12#).Select
Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
Selection.Locked = False
'place la forme au-dessUs de la ligne
Selection.ShapeRange.ConnectorFormat.BeginConnect
ActiveSheet.Shapes("D"),
3
'point de connection milieu face inf
[Totaux!Compteur].Value = [Totaux!Compteur].Value + 1
var = [Totaux!Compteur].Value
ancienF = Selection.Name
nouveauF = "F"
Selection.Name = nouveauF
Selection.ShapeRange.item("F").Height = 100
Selection.ShapeRange.item("F").Width = 0#
Selection.ShapeRange.item("F").Flip msoFlipVertical
Selection.Name = "F" & var 'la flèche est renommée F" &
[Totaux!Compteur].value
ActiveSheet.Shapes("D").Select
Selection.Name = "D" & var 'la zone de texte est renommée D" &
[Totaux!Compteur].value
ActiveSheet.Shapes.Range(Array("D" & var, "F" & var)).Select
Selection.ShapeRange.Group.Select
Selection.ShapeRange.IncrementTop 114
larg = Selection.ShapeRange.Width
diff = (larg / 2)
Selection.ShapeRange.IncrementLeft -diff + 5 'déplace le groupe vers la
gauche _
sur une distance égale à la moitié de sa largeur _
+2 pour éviter qu'il soit sur la même verticale sur SupEloign
Selection.ShapeRange.Ungroup.Select
End Sub




"michdenis" a écrit dans le message de
news:
Bonjour Manbas,

Pour une raison que j'ignore, l'enregistreur est moins performant avec
Excel 2007.

Si tu expliques ce que tu veux faire, il y a quelqu'un sur ce forum qui
aura peut être des suggestions !

L'autre alternative est d'utiliser une version antérieure d'Excel pour
enregistrer le code de l'enregistreur de macro.



"manbas" a écrit dans le message de groupe
de
discussion :
#$
Bonjour
Je découvre que des macros concernant les shapes ne s'exécutent pas
correctement dans XL2007. Pour comprendre je lance la manoeuvre avec
l'enregistreur de macro activé, et là surprise, la macro ne s'enregistre
pas! Dans le cas précis il s'agit de créer une zone de texte et un
connecteur: seule ligne enregistrée, la cellule selectionnée.
Je perds la tête ou quoi?
Votre avis?









Avatar
manbas
Merci MichDenis. Les résultats sont visibles et comparés sur la feuille
Chronologie du classeur posté sur cjoint


"michdenis" a écrit dans le message de
news:

J'ai bien sûr regardé les procédures du fichier.
Comme dit précédemment, ces procédures ne provoquent
aucune erreur.

Ma question demeure, quelle est la manouvre que tu exécutes
dans ce fichier qui génère un résultat inattendu.

A ) La manouvre doit être décrite de façon précise pour qu'un
répondant qui télécharge ton fichier puisse la reproduire.

B ) En Version 2003, quel est le résultat que tu obtiens ?
et en Version 2007, quel est le résultat obtenu versus le
résultat désiré ?





"manbas" a écrit dans le message de groupe de
discussion :

voili voila
http://cjoint.com/?jtqLHHDtJb




"michdenis" a écrit dans le message de
news:
Tu mets ton code dans le module d'une feuille d'un classeur,
et tu publie ce classeur sur cJoint.com avec le résultat attendu.





"manbas" a écrit dans le message de groupe de
discussion :

Tu as une zone de texte avec une flèche qui en part du milieu de son coté
inférieur, flèche verticale, pointée vers le bas?

"michdenis" a écrit dans le message de
news:
Bonjour Manbas,

| excel 2007 a de nouvelles limites qui n'existaient pas avant

Je dirais plutôt le contraire, Excel 2007 offre des possibilités
que les versions précédentes ignorent. Sauf que l'enregistreur
de macro éprouve quelques difficultés qui devraient être corrigé
je suppose lors d'un futur Sp x

J'ai exécuté ton code sous Excel 2007, je n'ai rien à signaler
ton code fonctionne bien. En tout cas, il ne génère aucune
erreur. Quelle difficulté rencontres-tu ?

J'ai simplement donné une valeur fictive à la variable "Var"
var = [Totaux!Compteur].Value





"manbas" a écrit dans le message de groupe
de
discussion :

Bonjour MichDenis
C'est ce que je craignais: excel 2007 a de nouvelles limites qui
n'existaient pas avant (j'avais déjà rencontré le problème des
graphiques
à
deux axes).
Le code fonctionne bien dans les versions anterieures d'excel, et plus
du
tout dans excel 2007.
En pratique, à partir d'un clic droit sur une cellule de la ligne 20, il
crée une zone de texte, il y adjoint un connecteur-flèche qui se dirige
verticalement vers la ligne 20, il groupe les deux pour les déplacer au
contact de la ligne 20, sur la colonne d'où est parti le clic droit. Il
y
a
les codes pour "au-dessus" et "au-dessous" de la ligne, et 3 longueurs
differentes de connecteurs-fleches, ce qui permet (par un userform) de
choisir parmi 6 emplacements de zones de texte.

Le code (amateur +++) n'a rien de secret, et si tu y apporte des
corrections
tant mieux! Mais je répète qu'il fonctionne correctement dans XL2003.

Sub BulleSupIntermed()
Dim commentaire
commentaire = uf_Bulles.TextBox1.Value
If commentaire = "" Then MsgBox "Vous n'avez rien écrit"
Dim dH, dG
dH = ActiveCell.Offset(-18, 0).Top
dG = ActiveCell.Left
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, dG, dH,
10,
10).Select
With Selection
.Characters.Text = commentaire
.AutoSize = True 'taille adapté au texte
.Locked = False
.LockedText = False
End With
With Selection.Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Dim ancienD, nouveauD, ancienF, nouveauF, var, larg, diff
ancienD = Selection.Name
nouveauD = "D"
Selection.Name = nouveauD
ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 70, 70, 1.5,
12#).Select
Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
Selection.Locked = False
'place la forme au-dessUs de la ligne
Selection.ShapeRange.ConnectorFormat.BeginConnect
ActiveSheet.Shapes("D"),
3
'point de connection milieu face inf
[Totaux!Compteur].Value = [Totaux!Compteur].Value + 1
var = [Totaux!Compteur].Value
ancienF = Selection.Name
nouveauF = "F"
Selection.Name = nouveauF
Selection.ShapeRange.item("F").Height = 100
Selection.ShapeRange.item("F").Width = 0#
Selection.ShapeRange.item("F").Flip msoFlipVertical
Selection.Name = "F" & var 'la flèche est renommée F" &
[Totaux!Compteur].value
ActiveSheet.Shapes("D").Select
Selection.Name = "D" & var 'la zone de texte est renommée D" &
[Totaux!Compteur].value
ActiveSheet.Shapes.Range(Array("D" & var, "F" & var)).Select
Selection.ShapeRange.Group.Select
Selection.ShapeRange.IncrementTop 114
larg = Selection.ShapeRange.Width
diff = (larg / 2)
Selection.ShapeRange.IncrementLeft -diff + 5 'déplace le groupe vers la
gauche _
sur une distance égale à la moitié de sa largeur _
+2 pour éviter qu'il soit sur la même verticale sur SupEloign
Selection.ShapeRange.Ungroup.Select
End Sub




"michdenis" a écrit dans le message de
news:
Bonjour Manbas,

Pour une raison que j'ignore, l'enregistreur est moins performant avec
Excel 2007.

Si tu expliques ce que tu veux faire, il y a quelqu'un sur ce forum qui
aura peut être des suggestions !

L'autre alternative est d'utiliser une version antérieure d'Excel pour
enregistrer le code de l'enregistreur de macro.



"manbas" a écrit dans le message de groupe
de
discussion :
#$
Bonjour
Je découvre que des macros concernant les shapes ne s'exécutent pas
correctement dans XL2007. Pour comprendre je lance la manoeuvre avec
l'enregistreur de macro activé, et là surprise, la macro ne
s'enregistre
pas! Dans le cas précis il s'agit de créer une zone de texte et un
connecteur: seule ligne enregistrée, la cellule selectionnée.
Je perds la tête ou quoi?
Votre avis?