Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recopier une série de nombres dans colonne B

5 réponses
Avatar
Denys
Bonjour,

Dans la colonne A j'ai une s=E9rie de dates, dont le nombre varie de semain=
es en semaines.=20
A c=F4t=E9, dans la colonne B, je voudrais par macro =E9crire les chiffres =
de 1 =E0 5 (B1=3D1, B2=3D2,B3=3D3,B4=3D4,B5=3D5) et ensuite r=E9p=E9ter la =
s=E9quence jusqu'=E0 la fin de la colonne A, donc B6=3D1, B7=3D2, etc.....

Par la suite, je convertirai les 1 en Lundi, 2 en Mardi etc....

Auriez-vous une petite id=E9e?

Merci pour votre temps

Denys

5 réponses

Avatar
MichD
Bonjour,


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
'-----------------------------------------------------
Avatar
isabelle
bonjour Denys,

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 :
Bonjour,

Dans la colonne A j'ai une série de dates, dont le nombre varie de semaines
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

Avatar
isabelle
plutot,

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 :
bonjour Denys,

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 :
Bonjour,

Dans la colonne A j'ai une série de dates, dont le nombre varie de semaines
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

Avatar
Jacky
Bonjour Denys,

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 :
Bonjour,

Dans la colonne A j'ai une série de dates, dont le nombre varie de semaines
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
Avatar
Denys
Bonjour Denis, Isabelle et Jacky,

Wow.... merci beaucoup... je vais sauver beaucoup de temps...

Merci et bonne journée

Denys