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).
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:
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
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