boucle imbriquée pour collage plage multiple

Le
laucsap Hors ligne
Bonjour
voici un petit bout de code qui me permet de sélectionner et préparer à la copie
de plages multiples
je sèche après .copy

Ma question est : comment imbriquer une boucle qui permette de
coller le contenu de selectionAreas(i)
au même endroit F69:G74 de Sheets("HeuresHebdo") _boucle1
au même endroit K69:L74 de Sheets("HeuresHebdo") _boucle2
etc.
Merci par avance de votre aide
Sheets("H1606").Select
Range( _
"F69:G74,K69:L74,P69:Q74,U69:V74,Z69:AA74" & _
",F77:G82,K77:L82,P77:Q82,U77:V82,Z77:AA82" & _
",F93:G98,K93:L98,P93:Q98,U93:V98,Z93:AA98" & _
",F101:G106,K101:L106,P101:Q106,U101:V106,Z101:AA106" _
).Select
NbPlage = Selection.Areas.Count
For i = 1 To NbPlage
Sheets("H1606").Select
Selection.Areas(i).Copy
Sheets("HeuresHebdo").Select
?????????????????????????????????
???????????????????????????????

Next i
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
News.aioe.org
Le #26421517
Bonjour,
Je crois que ta question est incomplète.
Tu ne dis pas où tu veux copier ces données.
Tu donnes le nom de la feuille, mais pas l'adresse
de la destination de chacune des plages de cellules
copiées.
Je te donne un exemple :
Sélectionne toutes les feuilles dont tu veux copier ces
plages de cellules vers la feuille de destination et
appelle la macro. La macro copiera ces données
à partir de la ligne 5 (arbitraire) de la feuille HeuresHebdo.
Seules les données sont copiées sans le formatage des
plages sources.
'-----------------------------------------------------------------
Sub test()
Dim Arr(), Elt As Variant, A As Long
Dim NbRow As Long
'Numéro de la ligne où tu veux copier ces
'données dans la feuille de destination
NbRow = 5
Application.ScreenUpdating = False
Application.EnableEvents = False
Arr = Array("F69:G74", "K69:L74", "P69:Q74", "U69:V74", _
"Z69:AA74", "F77:G82", "K77:L82", "P77:Q82" _
, "U77:V82", "Z77:AA82", "F93:G98", "K93:L98" _
, "P93:Q98", "U93:V98", "Z93:AA98", "F101:G106" _
, "K101:L106", "P101:Q106", "U101:V106", "Z101:AA106")
For Each Sh In ActiveWindow.SelectedSheets
With Sh
For Each Elt In Arr
A = A + 1
x = .Range(Elt).Value
With Sheets("HeuresHebdo")
With .Cells(5, A)
.Resize(UBound(x, 1), UBound(x, 2)).Value = x
.EntireColumn.AutoFit
A = A + UBound(x, 2) - 1
End With
End With
Next
End With
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'-----------------------------------------------------------------
MichD
News.aioe.org
Le #26421516
Dans cette ligne de code : With .Cells(5, A)
On doit remplacer le "5" par la variable NbRow
La ligne de code devient : With .Cells(NbRow, A)
MichD
Publicité
Poster une réponse
Anonyme