Microsoft 365 Automatisation de la date et des lignes sur Feuil1

  • Initiateur de la discussion Initiateur de la discussion Musbek
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Musbek

XLDnaute Nouveau
Bonjour à tous,



Je cherche à automatiser certaines actions sur le dossier Excel nommée "Feuil1" :



1. **Date automatique** : Je souhaite que après le titre"VOL PAX Vegeteaux" affiche par défaut la date du lendemain à l'ouverture du fichier, puis que cette date reste fixe (sans se mettre à jour ultérieurement).



2. **Gestion des lignes vides** :

- Actuellement, les lignes de "Feuil1" se remplissent automatiquement via des données provenant d'autres onglets (ex. "VOL PAX PES PEM").

- Cependant, je dois manuellement supprimer les lignes vides après chaque travail.

- Mon objectif : qu’une nouvelle ligne se génère automatiquement uniquement si nécessaire, sans avoir à nettoyer les cellules inutilisées.



Auriez-vous une solution (formule, macro, ou script) pour ces deux problématiques ? Vous pouvez modifier mon dossier si c’est possible. Merci d’avance pour votre aide !
 

Pièces jointes

Bonsoir à toutes & à tous, bonsoir @Musbek , bonsoir @Dranreb

Pour le premier point, la même solution que @Dranreb.

Pour le deuxième point j'ai revu un peu tes Tableaux Structurés (plus de lignes vides et nommés explicitement) et j'ai revu ta feuil1 que j'ai baptisée "Récapitulation".
Les données des autres feuilles sont ramenées par des formules matricielles dynamiques
par exemple pour le TS "TS_VOL_PAX_Végétaux" =LET(TS;TS_VOL_PAX_Végétaux;SI(TS="";"";TS))

L'adaptation aux nombres de lignes lorsque les TS évoluent se fait par l'événement "Worksheet_Activate" :
VB:
Private Sub Worksheet_Activate()

Dim Tb, L, NBl As Long, Nom As String
Application.ScreenUpdating = False
     Tb = Array(Array([TS_VOL_PAX_Végétaux].Rows.Count, [VOL_PAX_Végétaux]), _
                Array([TS_VOL_PAX_PES_PEM].Rows.Count, [VOL_PAX_PES_PEM]), _
                Array([TS_TRUCK].Rows.Count, [TRUCK]), _
                Array([TS_FULL_FREIGHTER].Rows.Count, [FULL_FREIGHTER]), _
                Array([TB_STOCKEUR].Rows.Count, [STOCKEUR]), _
                Array([TS_PREVISIONS_LHD].Rows.Count, [PREVISIONS_LHD]))
                
     For Each L In Tb
          NBl = L(1).Rows.Count
          Nom = L(1).Name.Name
          Select Case True
               Case L(0) < NBl
                    L(1).Rows(L(0) + 1).Resize(NBl - L(0)).EntireRow.Delete
               Case L(0) > NBl
                    
                    L(1).Offset(NBl).Resize(L(0) - NBl).EntireRow.Insert
                    ThisWorkbook.Names.Add Nom, L(1).Resize(L(0))
                    Set L(1) = Evaluate(Nom)
               Case L(0) = NBl
                    'Rien
          End Select
          L(1).Rows(1).Copy
          L(1).PasteSpecial Paste:=xlPasteFormats
          L(1).Borders.Weight = xlThick
          L(1).Borders(xlInsideVertical).LineStyle = xlNone
          L(1).Borders(xlInsideHorizontal).LineStyle = xlNone
          L(1).Columns(L(1).Columns.Count).Borders(xlEdgeLeft).Weight = xlThick
     Next
Application.ScreenUpdating = True
End Sub

Voir le fichier joint
À bientôt
 

Pièces jointes

Bonjour à tous,

Pour alimenter Feuil1 de simples copier-coller suffisent :
VB:
Private Sub Worksheet_Activate()
Dim lig&, n%, w As Worksheet, R As Range
lig = 1
Application.ScreenUpdating = False
Cells.Delete 'RAZ
For n = 1 To 5 'les 5 premières feuilles
    Set w = Sheets(n)
    Set R = w.Rows("1:" & w.Cells.Find("*", , xlValues, , xlByRows, xlPrevious).Row)
    R.Copy Rows(lig) 'copier-coller
    lig = lig + R.Rows.Count
Next n
Columns("A").ColumnWidth = 20
Columns("F").AutoFit 'colonne Observation
Columns("J:K").AutoFit 'colonnes Observation
End Sub
Edit : dans le fichier (2) j'ai ôté les bordures inutiles des colonnes Observation des 4 premières feuilles.

A+
 

Pièces jointes

Dernière édition:
Bonjour à toutes & à tous, bonjour @job75,

Evidemment plus simple mais ...

La Feuille de récap reprend les feuilles 1 à 4 et 6 et sans les lignes de totalisation.

C'est un détail bien sûr.

Et puis, j'aime bien jouer avec les formules matricielles dynamiques (ça c'est pour le fun 😉)
À bientôt
 
Je tiens à vous adresser mes sincères remerciements pour l’aide que vous m’avez apportée concernant le tableau Excel.


Plusieurs d’entre vous ont pris le temps de se pencher sur ma demande, d’apporter des réponses précises, et parfois même d’aller bien au-delà de ce que j’avais imaginé.





Votre disponibilité, votre rigueur et votre esprit de collaboration méritent d’être salués.


Merci à chacun d’entre vous.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

P
Réponses
4
Affichages
1 K
Jean-Marie
J
Retour