XL 2019 Aide macro avec un choix de deux modèles

crackerwood

XLDnaute Nouveau
Bonjour, bonsoir,
Je viens vers vous pour un problème de macro. En effet j'ai suivis un tuto pour créer des onglets à partir d'un modèle. Jusque là pas de souci cela fonctionne à merveille. Le problème c'est que en fonction d'un choix entre chef et adj j'ai deux modèles. J'ai essayé avec des conditions mais rien n'a fonctionné. J'ai aussi essayé en faisant un seul modèle et en masquant les colonnes en fonction du choix chef ou adj. Je vous fournis le tableau en m'excusant par avance car cela étant pour le travail j'ai du effacer beaucoup de chose. J'ai laissé des commentaires à l'interieur. Je vous remiercie par avance.
 

Pièces jointes

  • public.xlsm
    65.2 KB · Affichages: 17

vgendron

XLDnaute Barbatruc
Hello

un essai avec ce code
VB:
Sub NouvelleFiche()
Application.ScreenUpdating = False
With ActiveSheet
    fin = .Range("B" & .Rows.Count).End(xlUp).Row
    For i = 4 To fin
        Worksheets(LCase(.Range("D" & i))).Copy after:=Worksheets(ThisWorkbook.Sheets.Count)
        Worksheets(ThisWorkbook.Sheets.Count).Name = .Range("C" & i)
    Next i
End With
Application.ScreenUpdating = True
End Sub

il faudra peut être ajouter un test pour vérifier que la feuille n'existe pas déjà...
 

vgendron

XLDnaute Barbatruc
VB:
Sub NouvelleFiche()
Application.ScreenUpdating = False
With ActiveSheet
    fin = .Range("B" & .Rows.Count).End(xlUp).Row
    For i = 4 To fin
        If Not FeuilleExiste(LCase(.Range("D" & i))) Then
            Worksheets(LCase(.Range("D" & i))).Copy after:=Worksheets(ThisWorkbook.Sheets.Count)
            Worksheets(ThisWorkbook.Sheets.Count).Name = .Range("C" & i)
        End If
    Next i
End With
Application.ScreenUpdating = True
End Sub

Function FeuilleExiste(NomFeuille As String) As Boolean
FeuilleExiste = False
For Each ws In ActiveWorkbook.Sheets
    If ws.Name = NomFeuille Then
        FeuilleExiste = True
        Exit For
    End If
Next ws
End Function
 

crackerwood

XLDnaute Nouveau
Hello.
Merci bien. Alors la première macro marche à 100%
Le deuxième ne fonctionne pas du tout ou me dis une erreur sur s
feuilleexiste
mais ce n'est pas grave. Le premier code marchant ça me suffira.
Merci également pour la formule. Après quelques recherche j'ai vu que INDIRECT serait le mieux. Je vais devoir chercher et je me débrouillerais.
Encore merci. Bonne soirée
 

crackerwood

XLDnaute Nouveau
Bonjour, j'espère ne pas faire de bêtise en ouvrant de nouveau le sujet mais la touche ma même macro alors je n'ai pas voulu faire un nouveau sujet.
Je vous explique la macro fonctionne nickel mais juste un truc. Si l'onglet récupéré parfaitement le nom de la personne (voir fichier fourni précédemment) que dois-je ajouter pour éviter un bug si j'ai par exemple deux Martin. Étant donné que l'on ne peut pas avoir deux onglet de nom identique je voudrais juste dans la même macro que ça rajouter un chiffre devant ou dernière.
Merci et encore désolé si j'aurais dû ouvrir un nouveau sujet.
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 090
Membres
103 464
dernier inscrit
Inconnu2