Recopier une série de nombres dans colonne B
Le
Denys

Bonjour,
Dans la colonne A j'ai une série de dates, dont le nombre varie de semain=
es en semaines.
A côté, dans la colonne B, je voudrais par macro écrire les chiffres =
de 1 à 5 (B1=1, B2=2,B3=3,B4=4,B5=5) et ensuite répéter la =
séquence jusqu'à la fin de la colonne A, donc B6=1, B7=2, etc..
Par la suite, je convertirai les 1 en Lundi, 2 en Mardi etc.
Auriez-vous une petite idée?
Merci pour votre temps
Denys
Dans la colonne A j'ai une série de dates, dont le nombre varie de semain=
es en semaines.
A côté, dans la colonne B, je voudrais par macro écrire les chiffres =
de 1 à 5 (B1=1, B2=2,B3=3,B4=4,B5=5) et ensuite répéter la =
séquence jusqu'à la fin de la colonne A, donc B6=1, B7=2, etc..
Par la suite, je convertirai les 1 en Lundi, 2 en Mardi etc.
Auriez-vous une petite idée?
Merci pour votre temps
Denys
Tu auras directement le nom des jours de semaine
à partir de lundi comme jour no 1. À toi de l'adapter
dans la procédure...
'-----------------------------------------------------
Sub test()
Dim FirstRow As Long, LastRow As Long
Dim X As Long, A As Long, B As Long
'tableau de Base 1 jusqu'au nombre de jours désirés
'de la semaine.
Dim Arr(1 To 5), Sh As Worksheet
'Si tu veux laisser "Samedi" et "Dimanche" vide
'dans le tableau, déclare ton tableau comme ceci.
'et ne définis pas les éléments du tableau arr(6) et Arr(7)
'Dim Arr(1 To 7), Sh As Worksheet
'Nom de la feuille où sont tes données
Set Sh = Worksheets("Feuil1")
Arr(1) = "Lundi"
Arr(2) = "Mardi"
Arr(3) = "Mercredi"
Arr(4) = "Jeudi"
Arr(5) = "Vendredi"
Application.ScreenUpdating = False
Application.EnableEvents = False
With Sh
'Tu dois définir la plage de cellules,
'à quelle ligne les données débutent
'dans mon exemple, 1
With .Range("B1:B" & .Range("A" & .Rows.Count).End(xlUp).Row)
FirstRow = .Rows(1).Row
LastRow = .Rows.Count + FirstRow - 1
For A = FirstRow To LastRow Step UBound(Arr)
X = LastRow - A
If X < UBound(Arr) Then
B = X + 1
Else
B = UBound(Arr)
End If
Sh.Range("B" & A).Resize(B) = Application.Transpose(Arr)
Next
End With
End With
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'-----------------------------------------------------
Sub Macro1()
Dim LastRow As Long
Var = Array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi")
With Sheets(1)
LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
For i = 2 To LastRow Step 5
Cells(i, 2).Resize(UBound(Var) + 1) = Application.Transpose(Var)
Next
End Sub
isabelle
Le 2016-03-07 15:32, Denys a écrit :
Sub Macro1()
Dim LastRow As Long
Var = Array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi")
With Sheets(1)
LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 1 To LastRow Step 5
.Cells(i, 2).Resize(UBound(Var) + 1) = Application.Transpose(Var)
Next
End With
End Sub
isabelle
Le 2016-03-07 21:22, isabelle a écrit :
Si j'ai bien compris les dates en colonne A correspondent toujours à
"lundi-mardi......vendredi"
Alors ceci
'-------------------
Sub chiffre2()
Dim Derlg As Long
With Sheets("Feuil1")'***A adapter***
Derlg = .Cells(.Rows.Count, "A").End(xlUp).Row
.Range("a1:a" & Derlg).Copy .Range("b1")
.Range("b1:b" & Derlg).NumberFormat = "dddd"
End With
End Sub
'-------------------
--
Salutations
JJ
Denys a exposé le 07/03/2016 :
Wow.... merci beaucoup... je vais sauver beaucoup de temps...
Merci et bonne journée
Denys