OVH Cloud OVH Cloud

Amélioration d'un code recopie zones sur un récap

1 réponse
Avatar
Patrick BASTARD
Bonjour, vous.

Toujours dans l'amélioration du classeur que j'ai mis au point grâce à votre
aimable complicité.
(tous ceux qui m'ont aidé se reconnaitront...)
Le code ci-dessous recopie plusieurs zones (situées les unes sous les
autres) de chacune des feuilles du classeur sur une feuille récap.

Mais les 5 lignes de chacune des zones ne sont pas toujours renseignées.
Comment faire pour ne recopier que les lignes renseignées ?

Je vous remercie par avance de vos suggestions,


--
Bien cordialement,
P. Bastard

...............................................................................................................................
Sub RecopieAno()
Dim z As Byte 'numéro de zone - Byte car pas plus de 256 zones prévues
Dim CCol As Byte 'colonne Cible - Byte car pas + de 256 colonnes
possibles
Dim CLig As Long 'ligne Cible
Dim SLig As Long 'première ligne de la Source
Dim Sh As Worksheet
Application.ScreenUpdating = False
Application.EnableEvents = False
Sheets("Anomalies").Activate
ActiveSheet.Unprotect
CLig = 6 ' Ligne de départ ( 6) pour la zone Cible (sur Anomalies)
For Each Sh In ThisWorkbook.Sheets
If Sh.Name <> "Anomalies" And Sh.Name <> "Administration" _
And Sh.Name <> "Premier" And Sh.Name <> "Modèle" _
And Sh.Name <> "TOTAL" _
Then
CCol = 2
SLig = 7
For z = 0 To 21
Cells(CLig, CCol).Resize(5, 7).Value = _
Sh.Cells(SLig, 13).Resize(5, 7).Value '5 de haut sur 7 de
large
CCol = CCol + 7 'décale de 7 la colonne Cible
SLig = SLig + 7 'décale de 7 la ligne Source
Next
CLig = CLig + 5 'décale de 5 la ligne Cible
End If
Next Sh
Application.EnableEvents = True
Application.Goto Reference:="R6C2"
'appel private sub RecopieDateAno()
RecopieDateAno
'appel private sub RecopieAno2
RecopieAno2
End Sub

1 réponse

Avatar
Patrick BASTARD
Bonjour, vous.

Je me permets (avec mon consentement) de reposter ma question du 19, restée
sans réponse.


Le code ci-dessous recopie plusieurs zones (situées les unes sous les
autres) de chacune des feuilles du classeur sur une feuille récap.

Mais les 5 lignes de chacune des zones ne sont pas toujours renseignées.
Comment faire pour ne recopier que les lignes renseignées ?

Je vous remercie par avance de vos suggestions,

...............................................................................................................................
Sub RecopieAno()
Dim z As Byte 'numéro de zone - Byte car pas plus de 256 zones prévues
Dim CCol As Byte 'colonne Cible - Byte car pas + de 256 colonnes
possibles
Dim CLig As Long 'ligne Cible
Dim SLig As Long 'première ligne de la Source
Dim Sh As Worksheet
Application.ScreenUpdating = False
Application.EnableEvents = False
Sheets("Anomalies").Activate
ActiveSheet.Unprotect
CLig = 6 ' Ligne de départ ( 6) pour la zone Cible (sur Anomalies)
For Each Sh In ThisWorkbook.Sheets
If Sh.Name <> "Anomalies" And Sh.Name <> "Administration" _
And Sh.Name <> "Premier" And Sh.Name <> "Modèle" _
And Sh.Name <> "TOTAL" _
Then
CCol = 2
SLig = 7
For z = 0 To 21
Cells(CLig, CCol).Resize(5, 7).Value = _
Sh.Cells(SLig, 13).Resize(5, 7).Value '5 de haut sur 7 de
large
CCol = CCol + 7 'décale de 7 la colonne Cible
SLig = SLig + 7 'décale de 7 la ligne Source
Next
CLig = CLig + 5 'décale de 5 la ligne Cible
End If
Next Sh
Application.EnableEvents = True
Application.Goto Reference:="R6C2"
'appel private sub RecopieDateAno()
RecopieDateAno
'appel private sub RecopieAno2
RecopieAno2
End Sub


--
Bien cordialement,
P. Bastard