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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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