Macro copie onglet + couleur onglet

Camille-gdp -  
Camille-gdp Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je réalise un fichier de suivi contenant un onglet par type de dépenses (Alimentaire, Loyer, Loisirs... etc).

Première question :
Sur ma page de synthèse je souhaiterai avoir un bouton lié à une macro qui me permette, en cliquant dessus :
- De copier une feuille après la dernière feuille qui soit identique aux autres (sur chaque feuille il y a le même tableau et les mêmes formules)
- De pouvoir rentrer son nom directement dans une inputbox

Seulement, je souhaiterai aussi que si on crée une nouvelle feuille, mon tableau de synthèse ait une nouvelle ligne contenant la valeur du nom de la feuille...
Est-ce que c'est possible ?

Deuxième question :
J'ai crée une macro qui change la couleur de l'onglet si une valeur dépasse un seuil, mais je souhaiterai exclure 3 feuilles sur lesquelles la macro s'applique voila mon code :

Sub CouleurOnglet()
'Déclaration des valeurs

'Programme
'Boucle For/Next
For Each VFeuille In Worksheets

'Test If/End If
If VFeuille.Range("C5").Value > C4 Then
VFeuille.Tab.ColorIndex = 3
Else: VFeuille.Tab.ColorIndex = 4
End If

'Fin de la boucle
Next
End Sub

Merci d'avance à toute personne qui sera susceptible de m'aider ou de me conseiller !!

Camille

1 réponse

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

remplacez Nom1 a 3 par les noms de feuille ou affectez ces variables avec le nom des feuilles

Sub CouleurOnglet()
    'Déclaration des valeurs
    Dim VFeuille As Worksheet

    'Programme
    'Boucle For/Next
    For Each VFeuille In Worksheets
        If VFeuille.Name <> Nom1 And VFeuille.Name <> Nom2 And VFeuille.Name <> Nom3 Then
            'Test If/End If
            If VFeuille.Range("C5").Value > C4 Then
                VFeuille.Tab.ColorIndex = 3
            Else
                VFeuille.Tab.ColorIndex = 4
            End If
        End If
    'Fin de la boucle
    Next VFeuille
End Sub
0
Camille-gdp Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup ça marche parfaitement, j'avais essayer ça mais il me manquait le .Name !! Donc tout parfait :).
0
Camille-gdp Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Une idée peut-être de comment faire en sorte de copier une feuille après la dernière en me demandant dans une inputbox comment la nommer ?
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > Camille-gdp Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Re,
a adapter pour les noms
Sub test()
    Dim Nom_Feuille As String
    
    Nom_Feuille = InputBox("Copie feuille")
    
    If Nom_Feuille <> "" Then
        Worksheets("Feuil1").Copy After:=Worksheets(ThisWorkbook.Sheets.Count)
        ActiveSheet.Name = Nom_Feuille
    Else
        MsgBox "Entrez un nom de feuille... SVP !!!"
    End If
End Sub
0
Camille-gdp Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai fait ce code mais ça ne marche pas : (je veux que ce soit la feuille Loyer qui soit copiée, mais mon bouton est sur une autre feuille :

Sub Coperfeuillerenommer()

Dim Vnom As String

With ActiveWorkbook.Sheet.Name = "Loyer"
.Copy After:=Worksheets(Worksheets.Count)
End With
ActiveSheet.Name = InputBox("Saisir le nom de la feuille à créer", "Création de feuille", "Merci de saisir un nom en lettres")


End Sub
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > Camille-gdp Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

Sans controle du nom !!!!!!!!!!!!

Sub Coperfeuillerenommer()
    Dim Vnom As String
    ActiveWorkbook.Worksheet("Loyer").Copy After:=Worksheets(Worksheets.Count)
    ActiveSheet.Name = InputBox("Saisir le nom de la feuille à créer", "Création de feuille", "Merci de saisir un nom en lettres")


End Sub
0