Creation Worksheets d'après Liste Valeurs

yremy

XLDnaute Junior
Bonsoir à tous !

J'ai trouvé ici une (plusieurs) macro(s) me permettant de constituer des onglets pour chaque article d'une liste selon tel ou tel modèle, et de les nommer en fonction.

Le souci, c'est que je ne peux "mettre à jour" la liste (et créer de nouveaux onglets), car j'obtiens un message d'erreur d'Excel qui me dit que plusieurs onglets ne peuvent avoir le même nom : j'ai bien saisi que la macro recommence tout depuis le début. De la liste.

Mais je ne souhaite pas effacer les Worksheets existantes ; juste créer les onglets qui ne l'ont pas encore été. Créés.

J'ai vu comment stopper une macro si la feuille existe, comment effacer un onglet s'il existe, mais je ne vois pas comment lui faire faire un onglet d'après une nouvelle valeur dans une liste qui a déjà permis de créer des onglets qui dorénavant, existent, eux aussi...

...Problème existentiel ? Dualité ? Insoutenable légèreté des acquis en VBA ?

Comment pourrais-je contourner le problème, sachant qu'il le sait bien lui, Excel, quelles sont les Worksheets qui existent déjà ? Si si, j'en suis sûr !

Comment écrire : "vérifie que tous les éléments de la liste sont bien représentés en tant qu'Onglet, et puis si t'en vois un qui n'a pas les Onglets qu'il devrait avoir, tu les crées, mais surtout tu touches pas au contenu des Onglets qui existent déjà. Ca serait pas cool".

Il fait froid ce soir à Chamonix. J'ai l'Onglet.

:(

Thank You (Merci : en Onglet) Mille fois !
 

Pièces jointes

  • test.zip
    36.7 KB · Affichages: 34
  • test.zip
    36.7 KB · Affichages: 36
  • test.zip
    36.7 KB · Affichages: 34

jp14

XLDnaute Barbatruc
Re : Creation Worksheets d'après Liste Valeurs

Bonsoir

Deux procédures à modifier

Code:
Function feuillexist(nom As String) As Boolean
Dim n As Integer
feuillexist = False
For n = 1 To Sheets.Count
  If Sheets(n).Name = nom Then
  feuillexist = True
  [COLOR="Red"]Exit For[/COLOR]
Next n
End Function

Dans le corps de la macro écrire
Code:
If [COLOR="Red"]feuillexist(("Factures ") & Sheets("Fournisseurs").Range("B" & X)) = False[/COLOR] Then

au lieu de
If Not feuillexist(Sheets("Fournisseurs").Range("B" & X)) Then
la fonction feuillexist renvoyant "true" ou "False" et dans le nom il manque "Factures "

JP
 

yremy

XLDnaute Junior
Re : Creation Worksheets d'après Liste Valeurs

Merci Beaucoup jp14 !

En définitive, j'ai encore des erreurs 1004 sur la méthode coller, des 9 ; des messages me signalant des mêmes noms...

Alors j'ai fais une page "CréerFiche" dédiée qui crée les onglets, les efface de la liste (du "formulaire"), la reporte dans un fichier final où tout est centralisé.
J'ai joint le fichier final.

J'ai un Onglet en plus.
Je file. A l'Onglet. Ou aux échalotes. Bleu.

Encore Merci.
Yves
 

Pièces jointes

  • test.zip
    48.4 KB · Affichages: 30
  • test.zip
    48.4 KB · Affichages: 35
  • test.zip
    48.4 KB · Affichages: 32

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 099
Membres
103 116
dernier inscrit
kutobi87