Creation de forme, utilisation d'un boucle et décallage induit

  • Initiateur de la discussion Initiateur de la discussion Tiret2
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tiret2

XLDnaute Nouveau
Bonjour le forum,

je viens vous consulter pour un problème de decallage de position.
Je cherche a créer en dessous de chaque cellule colorer, une forme rectangulaire transparente de même couleur, avec un Offset de 1 pour la colonne, ce que j'arrive parfaitement a faire.
Seulement plus on progresse dans les colonnes (progression de 1 a 100), plus le decallage vers la gauche s'accentue.
Voici le code:

Sub Solution()
Dim RGBC As Long
Dim Blue As Integer
Dim Green As Integer
Dim Red As Integer
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim W As Single
i = 0
j = 0
k = 0

With Worksheets(1)

For i = 1 To 30
For j = 1 To 100
If .Cells(i, j).Interior.ColorIndex < 0 Then
Else: .Cells(i, j).Activate
RGBC = ActiveCell.Interior.Color
Red = Int(RGBC Mod 256)
Green = Int((RGBC Mod 65536) / 256)
Blue = Int(RGBC / 65536)
With ActiveSheet.Shapes.AddShape(msoShapeRectangle, ActiveCell.Left, ActiveCell.Offset(1, 0).Top, ActiveCell.Width, ActiveCell.Height)
With .Fill
.ForeColor.RGB = RGB(Red, Green, Blue)
.Transparency = 0.5
End With
With .Line
.DashStyle = msoLineSingle
.ForeColor.RGB = RGB(Red, Green, Blue)
End With
End With
k = 0
End If
Next j
Next i
End With

Et le fichier en PJ.

Je suppose que cela vient du ActiveCell.Left mais je ne comprends pas pourquoi cela ne me donne pas la position exacte.

Merci de votre aide!
 

Pièces jointes

Re : Creation de forme, utilisation d'un boucle et décallage induit

A noter que quand je teste la composante left grâce a:
Sub A()
MsgBox (ActiveCell.Left) teste la cellule
End Sub

Sub B()
MsgBox (Selection.Left) teste la forme associée
End Sub

Les deux resultats sont identiques! Alors que visiblement Il y a bien un décallage... Je comprends pas la...

J'ai l'impression que les références de position sont différentes selon que ce soit des cellules ou des objets (ce qui n'est pas le cas hein?)... Étrange
 
Dernière édition:
Re : Creation de forme, utilisation d'un boucle et décallage induit

Salut,

J'ai testé ton fichier sur Excel 2003... je n'ai aucun décalage! Les formes se superposent correctement aux cellules ???
Tu peux peut-être utiliser la fonction TopLeftCell ou BottomRightCell, cherche des exemples avec F1.
Bon courage.

Fred
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
179
Réponses
10
Affichages
799
Réponses
3
Affichages
665
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
650
Réponses
3
Affichages
673
Retour