Plusieurs demandes sur la création d'un classeur ...

Hessef

XLDnaute Nouveau
Bonjour,
Je vous expose mon problème ... Mon boss m'a demandé de lui faire un document Excel répertoriant tous les incidents d'une copro. Jusque la pas de problème mais il veut quelque chose d'automatisé, donc des macros. Et ... je n'y connais rien ! J'en suis au début et ne sais même pas dans quel ordre commencer.
J'alimenterai ce post en fonction de mon évolution si vous le permettez.

Première question, je voudrai savoir comment donner le nom d'une feuille en fonction du texte inscrit dans une cellule, soit "A2" a chaque feuille dupliquée ?
Je vous remercie par avance et vous demande de ne pas oublier que vous parlez a une personne qui ne comprend pas forcément. Je suis a votre disposition pour de plus amples questions.

Seconde question, ma fiche "vierge" que j'ai nommé "matrice" doit comporter un bouton qui la duplique, met sa copie à la suite mais devant les plus anciennes ; doit remplir la cellule "A2" par un numéro de série de type "001/18" (pour premier incident signalé en 2018) qui doit se poursuivre automatiquement de fait a chaque clic (002/18, 003/18...) et donc renommer ma feuille automatiquement (grace aux conseils de job75) ; se colorer en orange (pour plus de visibilité).
Le bouton ne doit pas être dupliqué mais peut etre mis ailleurs si possible.
Voila la prochaine étape ou je flanche. Merci d'avance !

Les étapes suivantes étant de faire en sorte que l'onglet se colore en vert lorsque une des cellule de la colonne "M" est noté terminé, puis de verouiller la feuille matrice et de la rendre invisible.
Restera la "consolidation" ou "tri" selon différents critères ... Et normalement ça sera terminé !
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonsoir Hessef,

La macro dans le code de la feuille "Synthèse" :
Code:
Private Sub Worksheet_Activate()
Dim a(), w As Worksheet, n%
ReDim a(1 To Worksheets.Count, 1 To 10) 'tableau, plus rapide
Application.ScreenUpdating = False
If FilterMode Then ShowAllData 'si la feuille est filtrée
Columns(1).ClearFormats 'RAZ
Range("B2:J" & Rows.Count).ClearContents 'RAZ
For Each w In Worksheets
    If w.Name Like "#*-##" Then
        n = n + 1
        Cells(n + 1, 1).Interior.ColorIndex = w.Tab.ColorIndex 'couleur
        a(n, 2) = w.Cells(2, 1)
        a(n, 3) = w.Cells(2, 2)
        If IsNumeric(Application.Lookup(9 ^ 9, w.Columns(2))) Then a(n, 4) = Application.Lookup(9 ^ 9, w.Columns(2))
        a(n, 5) = w.Cells(2, 4)
        a(n, 6) = w.Cells(2, 5)
        a(n, 7) = w.Cells(2, 7)
        a(n, 8) = w.Cells(2, 8)
        a(n, 9) = w.Cells(2, 9)
        a(n, 10) = w.Cells(2, 11)
    End If
Next
[A2].Resize(n, 10) = a 'restitution du tableau
Columns.AutoFit 'ajustement largeur
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub
Elle se déclenche quand on active la feuille.

Fichier joint.

Bonne nuit.
 

Pièces jointes

  • Fiche de suivi 2018(1).xlsm
    44.8 KB · Affichages: 18

Hessef

XLDnaute Nouveau
Bonjour,
Je reviens vers vous une nouvelle fois (la dernière j'espère) pour de "petites" modifications.
Ne comprenant toujours pas le code, j'ai tout de même réussi a changer la couleur des onglets !!!
Trêve de plaisanterie, je voudrai ajouter une colonne à la feuille "Synthèse" entre la B et la C nommée "Description". (Je voulais le faire moi même mais je crains de tout fausser). Cette colonne devra être renseignée par la "F2" de la feuille correspondante.
En J, il y a un petit bug, il n’apparaît le montant que si il est renseigné en "K2", or il faut qu'il apparaisse si il est par exemple en "K4"

J'aimerai vraiment comprendre ce qu'il y a écrit et savoir comment faire pour modifier !

En attendant un grand merci encore

Ps : fichier qui tourne en test joint
 

Pièces jointes

  • Fiche de suivi 2018.xlsm
    61.1 KB · Affichages: 16

job75

XLDnaute Barbatruc
Bonjour Hessef,

Toujours dans la feuille "Synthèse" :
Code:
Private Sub Worksheet_Activate()
Dim a(), w As Worksheet, n%
ReDim a(1 To Worksheets.Count, 1 To 11) 'tableau, plus rapide
Application.ScreenUpdating = False
If FilterMode Then ShowAllData 'si la feuille est filtrée
Columns(1).ClearFormats 'RAZ
Range("B2:J" & Rows.Count).ClearContents 'RAZ
For Each w In Worksheets
    If w.Name Like "#*-##" Then
        n = n + 1
        Cells(n + 1, 1).Interior.ColorIndex = w.Tab.ColorIndex 'couleur
        a(n, 2) = w.Cells(2, 1)
        a(n, 3) = w.Cells(2, 6)
        a(n, 4) = w.Cells(2, 2)
        If Application.Count(w.Columns(2)) Then a(n, 5) = Application.Lookup(9 ^ 9, w.Columns(2))
        a(n, 6) = w.Cells(2, 4)
        a(n, 7) = w.Cells(2, 5)
        a(n, 8) = w.Cells(2, 7)
        a(n, 9) = w.Cells(2, 8)
        a(n, 10) = w.Cells(2, 9)
        If Application.Count(w.Columns(11)) Then a(n, 11) = Application.Lookup(9 ^ 9, w.Columns(11))
    End If
Next
If n Then [A2].Resize(n, 11) = a 'restitution du tableau
Columns.AutoFit 'ajustement largeur
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub
Ce code est simple, faites un effort pour le comprendre.

Fichier (2).

A+
 

Pièces jointes

  • Fiche de suivi 2018(2).xlsm
    64.5 KB · Affichages: 16

Discussions similaires

Statistiques des forums

Discussions
312 203
Messages
2 086 197
Membres
103 153
dernier inscrit
SamirN