Problème de création de nom de nouvel onglet
Résolu
PbOnglet
-
pijaku Messages postés 13513 Statut Modérateur -
pijaku Messages postés 13513 Statut Modérateur -
Bonjour à tous,
je m'adresse à vous car j 'ai un problème en vba et n'étant pas expert( loin de la) j'ai besoin d'une petite aide dans la mesure du possible. J'ai créer un code qui permet de créer un nouvel onglet en le renommant.
tout d'abord j'ouvre une combobox qui permet de sélectionner ou de créer des nom de projet via une base de données, puis cela ouvre un nouveau document et le projet sélectionné ou créer devient le nouvel onglet du document ouvert. (je ne sais pas si c'est très clair). voici mon code peut-être que ce sera plus clair :
L'erreur qui m'est affiché est : Erreur d'exécution 1004, ce nom est déjà attribué, veuillez utilisez un autre nom. Cette erreur concerne la ligne
Sheets(Sheets.Count).Name = Me.Projet.Value
Je ne vois pas quel est le problème,j'espère que quelqu'un pourra m'aider, je vous remercie de votre aide.
je m'adresse à vous car j 'ai un problème en vba et n'étant pas expert( loin de la) j'ai besoin d'une petite aide dans la mesure du possible. J'ai créer un code qui permet de créer un nouvel onglet en le renommant.
tout d'abord j'ouvre une combobox qui permet de sélectionner ou de créer des nom de projet via une base de données, puis cela ouvre un nouveau document et le projet sélectionné ou créer devient le nouvel onglet du document ouvert. (je ne sais pas si c'est très clair). voici mon code peut-être que ce sera plus clair :
Private Sub OK_Click() Dim i As Integer nom_fichier = "C:\Users\PERSO\recapcommandes.xlsm" Me.Hide If Me.Projet.ListIndex = -1 Then _ Workbooks("Commande fournisseur.xlsm").Sheets("Base").Cells(28, 6500).End(xlToLeft).Offset(0, 1).Value = Me.Projet.Value Set wb = Workbooks.Open(nom_fichier) For i = 1 To Worksheets.Count If Worksheets(i).Name = Me.Projet.Value Then Sheets(Me.Projet.Value).Select Else With Workbooks("recapcommandes.xlsm") Sheets.Add.Move After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = Me.Projet.Value End With End If Next i Else Set wb = Workbooks.Open(nom_fichier) For i = 1 To Worksheets.Count If Worksheets(i).Name = Me.Projet.Value Then Sheets(Me.Projet.Value).Select Else With Workbooks("recapcommandes.xlsm") Sheets.Add.Move After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = Me.Projet.Value End With End If Next i
L'erreur qui m'est affiché est : Erreur d'exécution 1004, ce nom est déjà attribué, veuillez utilisez un autre nom. Cette erreur concerne la ligne
Sheets(Sheets.Count).Name = Me.Projet.Value
Je ne vois pas quel est le problème,j'espère que quelqu'un pourra m'aider, je vous remercie de votre aide.
A voir également:
- Problème de création de nom de nouvel onglet
- Creation de site web - Guide
- Creation de compte google - Guide
- Création de compte gmail - Guide
- Rouvrir onglet fermé chrome - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
2 réponses
Bonjour,
Que veux tu faire?
- Vérifier que la feuille Me.Projet.Value existe,
- Si oui => on la sélectionne,
- Si non => on la crée.
OK?
Ce que tu fais :
Tu boucles sur toutes les feuilles :
Que fait exactement ta boucle?
Si la feuille(1) (appelons là "Feuil1") a le même nom que Me.Projet.Value, alors on la sélectionne. Mais si cette feuille (Feuil1) a un nom différent, alors on créé une nouvelle feuille...
Tu vois pourquoi cela ne fonctionne pas?
Que veux tu faire?
- Vérifier que la feuille Me.Projet.Value existe,
- Si oui => on la sélectionne,
- Si non => on la crée.
OK?
Ce que tu fais :
Tu boucles sur toutes les feuilles :
For i = 1 To Worksheets.Count If Worksheets(i).Name = Me.Projet.Value Then Sheets(Me.Projet.Value).Select Else With Workbooks("recapcommandes.xlsm") Sheets.Add.Move After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = Me.Projet.Value End With End If Next i
Que fait exactement ta boucle?
Si la feuille(1) (appelons là "Feuil1") a le même nom que Me.Projet.Value, alors on la sélectionne. Mais si cette feuille (Feuil1) a un nom différent, alors on créé une nouvelle feuille...
Tu vois pourquoi cela ne fonctionne pas?
Je te remercie pour ta disponibilité et ta rapidité de réponse.
Oui je crois comprendre pourquoi cela ne fonctionne pas, il faut que je vérifie l'existence de la feuille Me.Projet.Value et non vérifier si elle a le même nom.
Mais comment faire du coup pour vérifier si elle éxiste?
Je cherche en effet à faire :
Vérifier que la feuille Me.Projet.Value existe,
- Si oui => on la sélectionne,
- Si non => on la crée.
ps : bonjour @ f894009
Dans les codes du lien que tu m'as transmis, je ne trouve malheureusement pas de choses qui pourrait coller à première vue :(