david54520
XLDnaute Junior
bonjour à tous
Depuis plusieurs heures je bloque sur un truc.
j'ai braconné une macro et je l'ai adapté pour la création de fléche sur la feuille ("dpt") depuis un tableau sur feuille ("admin1")
voila mon code :
Sub test11()
Sheets("admin1").Range("e3:Ar12").Select
Dim c As Range
Dim celdep As String 'cellule début fleche classe 4
Dim celfin As String ' cellule fin fleche classe 4
For Each c In Selection
If c.Value Like "classe 4" Then
celdep = c.Offset(0, -2).Value
celfin = c.Offset(0, -1).Value
MsgBox celdep
Dim sh As Shape, Ligne1 As Long, Ligne2 As Long, Colonne1 As Long, Colonne2 As Long
Set sh = Sheets("dpt").Shapes.AddLine(Range(celdep).Left + Range(celdep).Width / 2, Range(celdep).Top + Range(celdep).Height / 2, Range(celfin).Left + Range(celfin).Width / 2, Range(celfin).Top + Range(celfin).Height / 2)
sh.Line.EndArrowheadStyle = msoArrowheadTriangle
sh.Line.EndArrowheadLength = msoArrowheadLengthMedium
sh.Line.EndArrowheadWidth = msoArrowheadWidthMedium
sh.Line.ForeColor.SchemeColor = 10
sh.Line.Weight = 3#
'Coordonnées flèche
Ligne1 = sh.TopLeftCell.Row
Colonne1 = sh.TopLeftCell.Column
Ligne2 = sh.BottomRightCell.Row
Colonne2 = sh.BottomRightCell.Column
End If
Next
End Sub
dit autrement :
-je cherche la valeur "classe4' dans une selection de la feuille admin1
- pour chaque cellule je me décale de 2 colonne puis de 1 pour avoir les valeur indiquées dans ces deux nouvelles cellules
- ces deux cellule devraient me donner un référence de cellule (celdep et celfin) que j'utilise en suite pour la création de fléches
MAIS
- en donnant une valeur à celdep et celfin du genre "d8" et "g13", la fléche se crée. le processus de création fonctionne apparemment bien
- si j'arrête la sub après le message box, je constate que toutes les cellules recherchées sont bien trouvées
- les valeurs dans les cellules ciblées sont de type 14,6 (j'ai essaye de concatener en vba pour avoir une "d8", mais le problème ci dessous reste entier
- lors d'un autre teste il y a quelques jours, toutes les flèches se sont bien crées sur la feuille dpt, mais toutes décalées de plusieurs colonnes.
bref, quand je lance le truc, il trouve bien la première cellule et m'affiche le msgbox mais à la ligne :
Set sh = Sheets("dpt").Shapes.AddLine(Range(celdep).Left + Range(celdep).Width / 2, Range(celdep).Top + Range(celdep).Height / 2, Range(celfin).Left + Range(celfin).Width / 2, Range(celfin).Top + Range(celfin).Height / 2)
çà bug
erreur 1004 : méthode range de l'objet global a échoué
j'ai l'impression que le problème tourne autour de la valeur de celdep et celfin qui n'est pas vue comme une référence de cellule.
Et je ne sais plus comment faire malgrés des recherches sur forum !!
une aide sera la bienvenue.
Merci d'avance !
david
Depuis plusieurs heures je bloque sur un truc.
j'ai braconné une macro et je l'ai adapté pour la création de fléche sur la feuille ("dpt") depuis un tableau sur feuille ("admin1")
voila mon code :
Sub test11()
Sheets("admin1").Range("e3:Ar12").Select
Dim c As Range
Dim celdep As String 'cellule début fleche classe 4
Dim celfin As String ' cellule fin fleche classe 4
For Each c In Selection
If c.Value Like "classe 4" Then
celdep = c.Offset(0, -2).Value
celfin = c.Offset(0, -1).Value
MsgBox celdep
Dim sh As Shape, Ligne1 As Long, Ligne2 As Long, Colonne1 As Long, Colonne2 As Long
Set sh = Sheets("dpt").Shapes.AddLine(Range(celdep).Left + Range(celdep).Width / 2, Range(celdep).Top + Range(celdep).Height / 2, Range(celfin).Left + Range(celfin).Width / 2, Range(celfin).Top + Range(celfin).Height / 2)
sh.Line.EndArrowheadStyle = msoArrowheadTriangle
sh.Line.EndArrowheadLength = msoArrowheadLengthMedium
sh.Line.EndArrowheadWidth = msoArrowheadWidthMedium
sh.Line.ForeColor.SchemeColor = 10
sh.Line.Weight = 3#
'Coordonnées flèche
Ligne1 = sh.TopLeftCell.Row
Colonne1 = sh.TopLeftCell.Column
Ligne2 = sh.BottomRightCell.Row
Colonne2 = sh.BottomRightCell.Column
End If
Next
End Sub
dit autrement :
-je cherche la valeur "classe4' dans une selection de la feuille admin1
- pour chaque cellule je me décale de 2 colonne puis de 1 pour avoir les valeur indiquées dans ces deux nouvelles cellules
- ces deux cellule devraient me donner un référence de cellule (celdep et celfin) que j'utilise en suite pour la création de fléches
MAIS
- en donnant une valeur à celdep et celfin du genre "d8" et "g13", la fléche se crée. le processus de création fonctionne apparemment bien
- si j'arrête la sub après le message box, je constate que toutes les cellules recherchées sont bien trouvées
- les valeurs dans les cellules ciblées sont de type 14,6 (j'ai essaye de concatener en vba pour avoir une "d8", mais le problème ci dessous reste entier
- lors d'un autre teste il y a quelques jours, toutes les flèches se sont bien crées sur la feuille dpt, mais toutes décalées de plusieurs colonnes.
bref, quand je lance le truc, il trouve bien la première cellule et m'affiche le msgbox mais à la ligne :
Set sh = Sheets("dpt").Shapes.AddLine(Range(celdep).Left + Range(celdep).Width / 2, Range(celdep).Top + Range(celdep).Height / 2, Range(celfin).Left + Range(celfin).Width / 2, Range(celfin).Top + Range(celfin).Height / 2)
çà bug
erreur 1004 : méthode range de l'objet global a échoué
j'ai l'impression que le problème tourne autour de la valeur de celdep et celfin qui n'est pas vue comme une référence de cellule.
Et je ne sais plus comment faire malgrés des recherches sur forum !!
une aide sera la bienvenue.
Merci d'avance !
david