Creer feuilles selon listing + liaisons autres feuilles

V

VBA DEAD

Guest
Bonsoir à tous,

J'ai encore un problème qui me semble assez technique et qui vise les couches tards.


J'ai 2 feuilles "somme" et "bilan", cette dernière étant liée par formule à "Somme".

J'ai une macro qui créé des feuilles au format "somme" selon la liste saisie en A2 ds la feuille "vendeurs".

En cliquant sur le bouton "ajout vendeurs" (feuille vendeurs) je veux que les feuilles reprennent le format de la feuille "SOMME" se créé comme actuellement mais je cherche aussi à créer automatiquement les feuille "bilan", chacune devant être liéé à 1 feuille au format de "somme". Donc si j'ai 3 vendeurs "BOB, CARO et François", la macro doit créer 3 feuilles qui reprenne leur nom en onglet (ça c'est bon c'est fait) mais aussi 3 feuilles "bilan" avec par exmple "bilan BOB", "Bilan caro".

En cliquant sur ajouts vendeurs, vous comprendrez ce que j'essaie de faire.

Bilan : Créer feuilles selon liste vendeurs et au format de "somme" + créer feuilles liées par formules (feuilles "Bilan" dépendant de "somme").


Merci à tous pour votre aide

VBA_DEAD
 

Pièces jointes

  • Creerfeuilles.zip
    14.1 KB · Affichages: 43
S

Stephane

Guest
un exemple nécessitant trois feuilles (feuil3, bilan et somme)
Sub test()

On Error Resume Next 'continue l'exécution en cas d'erreur.
Application.DisplayAlerts = False 'désactive les alertes d'Excel.
Application.ScreenUpdating = False 'désactive le rafraîchissement de l'écran.
Dim nmS As String, nmB As String 'variables pour les noms des feuilles.
Set wsh_somme = Worksheets("somme") 'feuille mémorisée dans une variable objet.
Set wsh_bilan = Worksheets("bilan") 'feuille mémorisée dans une variable objet.
Set wsh_data = Worksheets("Feuil3") 'feuille mémorisée dans une variable objet.
For i = 2 To wsh_data.[A65536].End(xlUp).Row 'de la 2nde cellule à la fin de la colonne.
nm = wsh_data.Cells(i, 1) 'nom de la personne concernée.
nmS = "Somme " & nm 'création du nom d'une feuille somme.
nmB = "Bilan " & nm 'création du nom d'une feuille bilan.

'si la feuille existe, rien n'est fait, sinon la feuille est crée en dern. position
If eWSH(nmS) = False Then wsh_somme.Copy after:=Sheets(Sheets.Count) Else GoTo n1

'renommage de la feuille crée, elle est supprimée si une erreur surgit.
ActiveSheet.Name = nmS: [A1] = "Somme " & nm
If Err Then Err.Clear: ActiveSheet.Delete: GoTo n1
n1:
If eWSH(nmB) = False Then wsh_bilan.Copy after:=Sheets(Sheets.Count) Else GoTo n2
ActiveSheet.Name = nmB: [A1] = "Bilan " & nm
If Err Then Err.Clear: ActiveSheet.Delete: GoTo n2
n2:
Next i
End Sub


Function eWSH(WSHname As String) As Boolean
On Error Resume Next
eWSH = IsError(Len(Sheets(WSHname)))
Err.Clear
End Function
 
V

VBA DEAD

Guest
Bonjour Stephane,

Je te remercie

j'ai apporté quelques modifs à la macro mais il reste un problème qui existe aussi ds ta macro. (remplacement de "GoTo" par fonction "Sheetexist")

Le "Next i" ne fonctionne pas. Il m'est indiqué "Next sans for" (voir fichier joint).

si quelqu'un a une solution c'est bien!!!

Par contre, est ce que la macro va lier les feuilles (la feuille bilan depend de la feuille somme - lien par formule).

Comment va s'opérer la création des liens entre feuilles. Je m'explqiue : si je crée une feuille avec Bernard comme nom ds la liste, est ce que la feuille "Bilan bernard" ds laquelle il y a des formules, va aller chercher les données ds la feuille "somme bernard"?

Si non, comment puis je faire?

je remercie ceux qui peuvent m'aider même si je sais que c'est pas simple.

VBA DEAD
 

Pièces jointes

  • Copiefeuillesv2.zip
    9.5 KB · Affichages: 54
  • Copiefeuillesv2.zip
    9.5 KB · Affichages: 58
  • Copiefeuillesv2.zip
    9.5 KB · Affichages: 63

Discussions similaires

Statistiques des forums

Discussions
312 963
Messages
2 093 996
Membres
105 906
dernier inscrit
aifa