Bonjour,
Je travaille sur une application "hebdomadaire": remise à zéro chaque
semaine (un programme, quoi!)
Pour chaque jour, 1 feuille protégée.
Pour chaque feuille, 12 plages de cellules dévérouillées qu'il faut remplir
(ou pas, c'est selon les besoins). Par exemple: a3:t3, a4:t4, a5:t5...
Le lundi pourra avoir les 12 plages remplies, et aucune le mardi, et
inversement une autre semaine, ou certaines plages et pas toutes.
Je souhaiterais insérer une dernière feuille qui rassemblerait l'ensemble
des plages des autres feuilles: le résumé de la semaine (les plages du
lundi, les plages du mardi, les plages du mercredi,...etc...).
La contrainte pour ce résumé: n'afficher que les plages de cellules non
vides, afin d'obtenir un document concis en évitant une longue liste
émaillée de lignes vides entre les jours de la semaine, autant pour la
lecture à l'écran que pour l'impression papier.
Quelle(s) solution(s) envisageriez-vous?
Merci infiniment de vos suggestions.
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
Daniel
Bonjour. Je te propose le code suivant. J'ai baptisé "Recap" la feuille résumé. Sub Recopie() Dim Feuil As Integer, CtrLigne As Integer, NbreCellulesNonVides As Integer CtrLigne = 1 Feuil = 1 ' Traitement de toutes les feuilles For Feuil = 1 To Sheets.Count Sheets(Feuil).Activate If ActiveSheet.Name <> "Recap" Then ' Sauf la feuille "Recap" 'Traitement de la ligne 3 à la dernière ligne (possibilité de sélectionner) For i = 3 To ActiveCell.SpecialCells(xlLastCell).Row Range("A" & i, "T" & i).Select 'Vérification que la plage n'est pas vide NbreCellulesNonVides = 0 For Each c In Selection If c.Value <> "" Then NbreCellulesNonVides = NbreCellulesNonVides + 1 End If Next c ' Copie si la plage 'est pas vide If NbreCellulesNonVides <> 0 Then Worksheets("Recap").Range("A" & CtrLigne, "T" & CtrLigne) = Selection.Value CtrLigne = CtrLigne + 1 End If Next i End If Next Feuil End Sub Cordialement. Daniel "ManBas" a écrit dans le message de news: O$
Bonjour, Je travaille sur une application "hebdomadaire": remise à zéro chaque semaine (un programme, quoi!) Pour chaque jour, 1 feuille protégée. Pour chaque feuille, 12 plages de cellules dévérouillées qu'il faut remplir (ou pas, c'est selon les besoins). Par exemple: a3:t3, a4:t4, a5:t5... Le lundi pourra avoir les 12 plages remplies, et aucune le mardi, et inversement une autre semaine, ou certaines plages et pas toutes.
Je souhaiterais insérer une dernière feuille qui rassemblerait l'ensemble des plages des autres feuilles: le résumé de la semaine (les plages du lundi, les plages du mardi, les plages du mercredi,...etc...).
La contrainte pour ce résumé: n'afficher que les plages de cellules non vides, afin d'obtenir un document concis en évitant une longue liste émaillée de lignes vides entre les jours de la semaine, autant pour la lecture à l'écran que pour l'impression papier. Quelle(s) solution(s) envisageriez-vous? Merci infiniment de vos suggestions.
Bonjour.
Je te propose le code suivant. J'ai baptisé "Recap" la feuille résumé.
Sub Recopie()
Dim Feuil As Integer, CtrLigne As Integer, NbreCellulesNonVides As
Integer
CtrLigne = 1
Feuil = 1
' Traitement de toutes les feuilles
For Feuil = 1 To Sheets.Count
Sheets(Feuil).Activate
If ActiveSheet.Name <> "Recap" Then
' Sauf la feuille "Recap"
'Traitement de la ligne 3 à la dernière ligne (possibilité de
sélectionner)
For i = 3 To ActiveCell.SpecialCells(xlLastCell).Row
Range("A" & i, "T" & i).Select
'Vérification que la plage n'est pas vide
NbreCellulesNonVides = 0
For Each c In Selection
If c.Value <> "" Then
NbreCellulesNonVides = NbreCellulesNonVides + 1
End If
Next c
' Copie si la plage 'est pas vide
If NbreCellulesNonVides <> 0 Then
Worksheets("Recap").Range("A" & CtrLigne, "T" &
CtrLigne) = Selection.Value
CtrLigne = CtrLigne + 1
End If
Next i
End If
Next Feuil
End Sub
Cordialement.
Daniel
"ManBas" <nospam-j.ragni@wanadoo.fr> a écrit dans le message de news:
O$RgaY8CFHA.2156@TK2MSFTNGP10.phx.gbl...
Bonjour,
Je travaille sur une application "hebdomadaire": remise à zéro chaque
semaine (un programme, quoi!)
Pour chaque jour, 1 feuille protégée.
Pour chaque feuille, 12 plages de cellules dévérouillées qu'il faut
remplir (ou pas, c'est selon les besoins). Par exemple: a3:t3, a4:t4,
a5:t5...
Le lundi pourra avoir les 12 plages remplies, et aucune le mardi, et
inversement une autre semaine, ou certaines plages et pas toutes.
Je souhaiterais insérer une dernière feuille qui rassemblerait l'ensemble
des plages des autres feuilles: le résumé de la semaine (les plages du
lundi, les plages du mardi, les plages du mercredi,...etc...).
La contrainte pour ce résumé: n'afficher que les plages de cellules non
vides, afin d'obtenir un document concis en évitant une longue liste
émaillée de lignes vides entre les jours de la semaine, autant pour la
lecture à l'écran que pour l'impression papier.
Quelle(s) solution(s) envisageriez-vous?
Merci infiniment de vos suggestions.
Bonjour. Je te propose le code suivant. J'ai baptisé "Recap" la feuille résumé. Sub Recopie() Dim Feuil As Integer, CtrLigne As Integer, NbreCellulesNonVides As Integer CtrLigne = 1 Feuil = 1 ' Traitement de toutes les feuilles For Feuil = 1 To Sheets.Count Sheets(Feuil).Activate If ActiveSheet.Name <> "Recap" Then ' Sauf la feuille "Recap" 'Traitement de la ligne 3 à la dernière ligne (possibilité de sélectionner) For i = 3 To ActiveCell.SpecialCells(xlLastCell).Row Range("A" & i, "T" & i).Select 'Vérification que la plage n'est pas vide NbreCellulesNonVides = 0 For Each c In Selection If c.Value <> "" Then NbreCellulesNonVides = NbreCellulesNonVides + 1 End If Next c ' Copie si la plage 'est pas vide If NbreCellulesNonVides <> 0 Then Worksheets("Recap").Range("A" & CtrLigne, "T" & CtrLigne) = Selection.Value CtrLigne = CtrLigne + 1 End If Next i End If Next Feuil End Sub Cordialement. Daniel "ManBas" a écrit dans le message de news: O$
Bonjour, Je travaille sur une application "hebdomadaire": remise à zéro chaque semaine (un programme, quoi!) Pour chaque jour, 1 feuille protégée. Pour chaque feuille, 12 plages de cellules dévérouillées qu'il faut remplir (ou pas, c'est selon les besoins). Par exemple: a3:t3, a4:t4, a5:t5... Le lundi pourra avoir les 12 plages remplies, et aucune le mardi, et inversement une autre semaine, ou certaines plages et pas toutes.
Je souhaiterais insérer une dernière feuille qui rassemblerait l'ensemble des plages des autres feuilles: le résumé de la semaine (les plages du lundi, les plages du mardi, les plages du mercredi,...etc...).
La contrainte pour ce résumé: n'afficher que les plages de cellules non vides, afin d'obtenir un document concis en évitant une longue liste émaillée de lignes vides entre les jours de la semaine, autant pour la lecture à l'écran que pour l'impression papier. Quelle(s) solution(s) envisageriez-vous? Merci infiniment de vos suggestions.