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

Sélection plusieurs feuilles

4 réponses
Avatar
daniel
Bonjour,
J'essaye de faire une sélection de plusieurs feuilles dont les noms vont
changer. Avec l'enregistreur de macro, cela me ressort avec
Sheets(Array("nomfeuil1","nomfeuil2",etc...). les noms et le nombre de
feuilles va changer. Ceci pour arriver à formater toutes les colonnes au
même format et recopier les formats d'une feuille type.
Merci pour vos réponses et bon dimanche.

4 réponses

Avatar
daniel
Re,
J'aimerais arriver à écrire quelque chose comme ça :
'Sheets(Array("feuil3:feuil" & nombre)).Select
la réponse est "n'appartient pas à la sélection, j'ai beaucoup de
difficultés avec les "".
Merci par avance.

"daniel" a écrit dans le message de news:

Bonjour,
J'essaye de faire une sélection de plusieurs feuilles dont les noms vont
changer. Avec l'enregistreur de macro, cela me ressort avec
Sheets(Array("nomfeuil1","nomfeuil2",etc...). les noms et le nombre de
feuilles va changer. Ceci pour arriver à formater toutes les colonnes au
même format et recopier les formats d'une feuille type.
Merci pour vos réponses et bon dimanche.



Avatar
JB
Bonjour,


Sub Macro1()
Dim temp
ReDim temp(1 To 3)
temp(1) = "feuil1"
temp(2) = "feuil3"
temp(3) = "feuil5"
Sheets(temp).Select
End Sub

Sub Macro2()
Dim temp
ReDim temp(1 To Sheets.Count)
For i = 1 To Sheets.Count
temp(i) = Sheets(i).Name
Next i
Sheets(temp).Select
End Sub

Cordialement JB


Bonjour,
J'essaye de faire une sélection de plusieurs feuilles dont les noms vont
changer. Avec l'enregistreur de macro, cela me ressort avec
Sheets(Array("nomfeuil1","nomfeuil2",etc...). les noms et le nombre de
feuilles va changer. Ceci pour arriver à formater toutes les colonnes au
même format et recopier les formats d'une feuille type.
Merci pour vos réponses et bon dimanche.


Avatar
JB
Sub Macro3()
Dim temp
ReDim temp(1 To 1)
j = 0
For i = position("feuil2") To position("feuil4")
j = j + 1
ReDim Preserve temp(1 To j)
temp(j) = Sheets(i).Name
Next i
Sheets(temp).Select
End Sub

Function position(f)
For i = 1 To Sheets.Count
If UCase(Sheets(i).Name) = UCase(f) Then position = i
Next i
End Function

JB


Re,
J'aimerais arriver à écrire quelque chose comme ça :
'Sheets(Array("feuil3:feuil" & nombre)).Select
la réponse est "n'appartient pas à la sélection, j'ai beaucoup de
difficultés avec les "".
Merci par avance.

"daniel" a écrit dans le message de news:

Bonjour,
J'essaye de faire une sélection de plusieurs feuilles dont les noms v ont
changer. Avec l'enregistreur de macro, cela me ressort avec
Sheets(Array("nomfeuil1","nomfeuil2",etc...). les noms et le nombre de
feuilles va changer. Ceci pour arriver à formater toutes les colonnes au
même format et recopier les formats d'une feuille type.
Merci pour vos réponses et bon dimanche.





Avatar
daniel
Bonsoir,
Merci JB pour les réponses, mais je n'y comprends rien.
Je vais tester tout ça, mais si ce n'est pas abuser, serait-il possible
d'avoir un peu d'explications....
Je précise que je ne connais pas à l'avance les noms des feuilles ainsi que
leur nombre.
A tout hasard, je joins ci-dessous la macro (pompée par bout sur le forum).
Merci de vous pencher sur mon problème.

Sub Répart_JUR_QuandClic()
'
' Répart_JUR_QuandClic Macro
' Macro enregistrée le 28/09/2006 par da
'
Dim cell As Range, Nom$, Sht As Worksheet

Sheets("Totalité").Select
Range("A4:AF5000").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=
_
Range("AJ1:AJ2"), CopyToRange:=Range("AJ4"), Unique:=True
ActiveWindow.LargeScroll ToRight:=2
lign = [aj65000].End(xlUp).Row
Range("AJ5:AJ" & lign).Select
Selection.Cut
Sheets("SyntHèse").Select
Range("D2").Select
ActiveSheet.Paste

Range("D2:d" & lign).Select
Selection.Sort Key1:=Range("D2"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom

For Each cell In Selection
Nom = cell.Value
If Nom <> "" Then
On Error Resume Next
Set Sht = Sheets(Nom)
On Error GoTo 0
If Sht Is Nothing Then Sheets.Add.Name = Nom
End If
Next cell

Sheets("Totalité").Select
For Each c In Range([K5], [K65000].End(xlUp))
nf = CStr(c)
Sheets(nf).[a65000].End(xlUp).Offset(1, 0) = c.Offset(0, -10).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 1) = c.Offset(0, -9).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 2) = c.Offset(0, -8).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 3) = c.Offset(0, -7).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 4) = c.Offset(0, -6).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 5) = c.Offset(0, -5).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 6) = c.Offset(0, -4).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 7) = c.Offset(0, -3).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 8) = c.Offset(0, -2).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 9) = c.Offset(0, -1).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 10) = c.Offset(0, 0).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 11) = c.Offset(0, 1).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 12) = c.Offset(0, 2).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 13) = c.Offset(0, 3).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 14) = c.Offset(0, 4).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 15) = c.Offset(0, 5).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 16) = c.Offset(0, 6).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 17) = c.Offset(0, 7).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 18) = c.Offset(0, 8).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 19) = c.Offset(0, 9).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 20) = c.Offset(0, 10).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 21) = c.Offset(0, 11).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 22) = c.Offset(0, 12).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 23) = c.Offset(0, 13).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 24) = c.Offset(0, 14).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 25) = c.Offset(0, 15).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 26) = c.Offset(0, 16).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 27) = c.Offset(0, 17).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 28) = c.Offset(0, 18).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 29) = c.Offset(0, 19).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 30) = c.Offset(0, 20).Value
Next c

Sheets("Synthèse").Select
Range("D2:D" & lign).Select
Selection.Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlGuess,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("A4").Select

nombre = ActiveWorkbook.Sheets.Count

Sheets("Totalité").Select
Range("AF4").Select
Range(Selection, Cells(1)).Select
Selection.Copy

For i = 1 To nombre
If Sheets(i).Name <> "Synthèse" And Sheets(i).Name <> "Totalité" Then
'Sheets(Array("feuil3:feuil" & nombre)).Select
Sheets(i).Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=R[5]C[10]"
Rows("5:5").Select
Selection.Delete Shift:=xlUp
Range("AF4").Select
Range(Selection, Cells(1)).Select
Selection.Copy

End If
Next
Application.CutCopyMode = False
Range("A1").Select

C'est ici que je pars en vrille......

For i = 1 To nombre
If Sheets(i).Name <> "Synthèse" And Sheets(i).Name <> "Totalité"
Then
Selection.ColumnWidth = 5.57
Range("B1").Select
Selection.ColumnWidth = 5.57
Range("C1").Select
Selection.ColumnWidth = 5
Range("D1").Select
Selection.ColumnWidth = 4.14
Range("E1").Select
Selection.ColumnWidth = 11.14
Range("F1").Select
Selection.ColumnWidth = 2.29
Range("G1").Select
Selection.ColumnWidth = 21.29
Range("H1").Select
Selection.ColumnWidth = 9.57
Range("I1").Select
Selection.ColumnWidth = 7.14
Range("A4").Select
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = "&8Page &P / &N"
.CenterFooter = ""
.RightFooter = "&8&F / &A"
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0.196850393700787)
.BottomMargin = Application.InchesToPoints(0.354330708661417)
.HeaderMargin = Application.InchesToPoints(0.196850393700787)
.FooterMargin = Application.InchesToPoints(0.196850393700787)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlOverThenDown
.BlackAndWhite = False
.Zoom = 100
End With

End If
Next
End Sub



"JB" a écrit dans le message de news:

Bonjour,


Sub Macro1()
Dim temp
ReDim temp(1 To 3)
temp(1) = "feuil1"
temp(2) = "feuil3"
temp(3) = "feuil5"
Sheets(temp).Select
End Sub

Sub Macro2()
Dim temp
ReDim temp(1 To Sheets.Count)
For i = 1 To Sheets.Count
temp(i) = Sheets(i).Name
Next i
Sheets(temp).Select
End Sub

Cordialement JB


Bonjour,
J'essaye de faire une sélection de plusieurs feuilles dont les noms vont
changer. Avec l'enregistreur de macro, cela me ressort avec
Sheets(Array("nomfeuil1","nomfeuil2",etc...). les noms et le nombre de
feuilles va changer. Ceci pour arriver à formater toutes les colonnes au
même format et recopier les formats d'une feuille type.
Merci pour vos réponses et bon dimanche.