Macros illisibles dans Excel 2007 ?

Le
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?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #20180221
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" #$
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?
manbas
Le #20180671
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" 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" 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?



michdenis
Le #20180651
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"
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" 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" 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?



manbas
Le #20180931
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" 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" 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" 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" 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?






michdenis
Le #20181381
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"
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" 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" 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" 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" 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?






manbas
Le #20181941
voili voila
http://cjoint.com/?jtqLHHDtJb




"michdenis" 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" 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" 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" 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" 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" 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?









michdenis
Le #20187681
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"
voili voila
http://cjoint.com/?jtqLHHDtJb




"michdenis" 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" 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" 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" 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" 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" 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?









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


"michdenis" 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" discussion :

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




"michdenis" 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" 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" 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" 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" 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" 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?












Publicité
Poster une réponse
Anonyme