XL 2010 VBA - Mauvaise compréhension Offset sur cellules fusionnées

rom3478

XLDnaute Nouveau
Bonsoir,


Je débute sur VBA et rédige un code qui me simplifiera la vie dès que mon fichier sera terminé.

1°/ J'ai fusionné des cellules pour créer une entête (à terme je voudrais y insérer des dates suivant une sélection opérateur d'une semaine - exemple: S01). Le début de mon code est le suivant (sans problème).

VB:
'création entête des dates
Range("A3:F4,G3:L4,M3:R4,S3:X4,Y3:AD4,AE3:AJ4,AK3:AP4").Select
With Selection
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = True
End With
Selection.Font.Bold = True
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlMedium
End With
With Selection.Borders(xlEdgeTop)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlMedium
End With
With Selection.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlMedium
End With
With Selection.Borders(xlEdgeRight)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlMedium
End With
With Selection.Borders(xlInsideVertical)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlThin
End With


2°/ Je souhaiterai donc y insérer des dates via une boucle. J'ai mis des MsgBox pour comprendre cette boucle mais rien n'y fait:


Code:
Dim i0 As Integer
Dim j0 As Integer
For i0 = 0 To 41 Step 6
    'MsgBox i0
    j0 = 1
    Range("A3").Offset(0, i0).Value = "DATE " & j0
    'MsgBox Range("A3").Offset(0, i0).Address
    j0 = j0 + 1
Next i0

Je pense que j'ai une mauvaise compréhension de l'offset et il doit exister une subtilité avec les cellules fusionnées.

Je souhaite donc que ma boucle fasse:
pour i = 0 à 41 par pas de 6 (car les cellules fusionnées font 6 colonnes)
je définis un j = 1 qui va s'incrémenter pour DATE 1 puis 2 puis ... jusqu'à 7
Et là, je veux que cette valeur DATE soit la valeur d'une cellule dont la référence est A3 et qui se décale à droite, le but étant de faire correspondre cela avec les groupes de cases:
A3:F4
G3:L4
M3:R4
S3:X4
Y3:AD4
AE3:AJ4
AK3:AP4

Je souhaite vraiment passer par une boucle et comprendre ce process de décalage, c'est pour la suite de mon projet.

3°/ J'ai une dernière question d'un autre sujet. Est-ce qu'un fichier qui a des liaisons externes et qui piochent dans d'autres fichiers doit obligatoirement être ouvert pour être mis à jour? Mon fichier est assez volumineux et du coup il prend du temps pour être ouvert, je voudrais donc savoir si je peux le schinter.

Merci pour vos réponses et bonne soirée,

Rom3478
 

James007

XLDnaute Barbatruc
Bonsoir,

Si tu me le permets ... les cellules fusionnées sont A BANNIR TOTALEMENT ...:mad:

Si tu as une question d'ordre cosmétique ... tu peux :

1. Sélectionner les cellules que tu souhaites centrer ...

2. Puis Faire un clic droit, et choisir Format de cellule à partir du menu contextuel, puis dans le Format de cellule boîte de dialogue, clique sur Alignement onglet, puis choisir Centre à travers la sélection du Horizontal liste déroulante
 

job75

XLDnaute Barbatruc
Pour le remplissage de vos cellules fusionnées remplacez le code du 2°/ par :
VB:
Dim i0 As Integer
Dim j0 As Integer
j0 = 1
For i0 = 1 To 42 Step 6
    Range("A3")(1, i0).Value = "DATE " & j0
    j0 = j0 + 1
Next i0
Pour le 3°/ si on veut mettre à jour les liaisons il faut ouvrir le fichier, l'enregistrer et le refermer, voyez ce fil tout récent :

https://www.excel-downloads.com/thr...matique-fichier-excel.20039321/#post-20280991

A+
 

Discussions similaires

Réponses
5
Affichages
1 K

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG