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

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

  • Test final.xlsm
    24.1 KB · Affichages: 38
  • Test final.xlsm
    24.1 KB · Affichages: 43
  • Test final.xlsm
    24.1 KB · Affichages: 52

Tiret2

XLDnaute Nouveau
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:

Fred44

XLDnaute Nouveau
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
 

Discussions similaires

Réponses
23
Affichages
1 K

Statistiques des forums

Discussions
312 379
Messages
2 087 771
Membres
103 662
dernier inscrit
rterterert