Oui je sais, tout le monde se pose la même question ! Le problème c'est que je trouve quelques éléments de réponses mais jamais ce qu'il me faut précisément. Et puis je suis ignorante des codes VBA. Je sais simplement copier-coller un code donné et l'exécuter. Je recherche donc une aide précieuse et complète !
Voilà, j'ai un Plan d'Action composé de plusieurs feuilles excel (plusieurs plan d'action selon le service) et je souhaiterais pouvoir regrouper toutes les actions des différentes feuilles dans une feuille de récap.
Chaque feuille à la même construction, mais le nombre de ligne remplies (actions) diffère.
Attention, j'ai également deux feuilles de notice, qui ne doivent pas êtres prises en compte dans le récap. De même, dans chaque feuille, il y a une en-tête à ne pas prendre en compte. Je peux donner un nom à chaque plage de références à prendre en compte et donc regrouper les données de ces différentes plages.
Ne me proposez pas de tableaux dynamiques, cela ne conviendra pas à l'équipe !
Évidemment il faut que la feuille récap puisse se mettre à jour en fonction de la saisie dans les autres feuilles.
Est-ce que quelqu'un peut m'aider par un super code VBA et explications claires qui vont avec ?
Re : Regrouper le contenu de plusieurs feuilles dans une seule
En appliquant votre code, il bug à
"Me.[5:65536].Delete" du code de la feuille compil.
Rappel
du code de la feuille compil :
Private Sub Worksheet_Activate()
Dim Source As Range, ZonSrc As Range, Cible As Range, N As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Me.[5:65536].Delete
Set Cible = Me.[A5]
For N = 3 To (Me.Index - 1)
If Not Source Is Nothing Then
For Each ZonSrc In Source.Areas: Set Cible = Cible.Offset(ZonSrc.Rows.Count): Next
End If
Set Source = Worksheets(N).[B17:B65536]
On Error Resume Next
Set Source = Intersect(Source.Offset(0, -1).Resize(, 19), _
Source.SpecialCells(xlCellTypeConstants).EntireRow)
If Err Then Set Source = Nothing
On Error GoTo 0
If Not Source Is Nothing Then Source.Copy Destination:=Cible
Next N
Me.[A5].Select
Application.Calculation = xlCalculationAutomatic
End Sub
Re : Regrouper le contenu de plusieurs feuilles dans une seule
Je ne vois pas pourquoi ça plante. Quel message d'erreur ?
Ah… Peut être la protection ? Exécutez un coup la Workbook_Open où vous avez mis les Protect UserInterfaceOnly:=True en la sélectionnant dans le code et touche F5
À +
Re : Regrouper le contenu de plusieurs feuilles dans une seule
Bonjour,
Il s'agit bien d'un problème de protection de la feuille qui fait la compilation.
Voici le message d'erreur :
"erreur d'exécution 1004 :
La cellule ou le graphique est protégé en lecture seule.
POur modifier une cellule ou un graphique protégé, ôtez la protection avec la commande ôter la protection de la feuille (outils, protection). vous devrez peut-être taper un mot de passe."
J'ai essayé de faire votre manip (en sélectionnant les lignes de codes et touche F5), mais cela ne change rien. Peut-être n'ai-je pas fait la bonne manip...
Re : Regrouper le contenu de plusieurs feuilles dans une seule
Je pense que c'est un problème d'ordre d'exécution des macros. Il faudrait que chaque page soir protégée. Mais que lorsqu'il fait la compil, la feuille soit déprotégée puis reprotégée...
Re : Regrouper le contenu de plusieurs feuilles dans une seule
Bonjour
Si vous utilisez ailleurs que dans la Workbook_Open des Protect sans le paramètre UserInderfaceOnly:=True, évidemment ça coince. Joignez votre classeur qu'on y voie plus clair.
À +
Re : Regrouper le contenu de plusieurs feuilles dans une seule
Voici le fichier (j'ai du enlever certaines données).
Je m’aperçois également que la macro de protection empêche d'utiliser le filtre automatique sur chaque feuille, ce qui ne devrait pas arriver.
Il faut que les feuilles soient protégées contre l'écriture ou suppression de données dans les cellules verrouillées. Cependant, elle doit permettre de pouvoir utiliser le filtre auto ou encore utiliser les mises en pages (couleur texte...). En fait, je ne souhaite protéger que les cellules avec formules.
Re : Regrouper le contenu de plusieurs feuilles dans une seule
Merci.
Dois-je écrire ce code dans cet ordre (ou un autre ?) dans ThisWorkBook,
Me.Unprotect
Option Explicit
Private Sub Workbook_Open()
Dim F As Worksheet
For Each F In Me.Worksheets
F.Protect UserInterfaceOnly:=True
Next F
End Sub
Me.Protect UserInterfaceOnly:=True, DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFiltering:=True
Me.EnableSelection = xlUnlockedCells
ou dans cet ordre (ou un autre ?) dans la feuille de compil ??