Créer des feuilles a partir d'un bouton

cj welch

XLDnaute Occasionnel
salut le forum,

je voudrais a partir d'un bouton créer autant de feuille qu'il y a de lignes saisie dans mon tableau.

de plus, je voudrais que les nouvelles feuilles créees récupèrent les données renseignées dans ce tableau.

je ne sais pas si c'est possible

merci de votre aide
 

skoobi

XLDnaute Barbatruc
Re : Créer des feuilles a partir d'un bouton

Bonjour cj welch, tototiti,

Ton fichier me rappelle quelque chose ... ;).
Ci-joint une proposition.
PS: sympa d'avoir indiqué les cellules dans le modèle de facture :cool:

Attention tout de même à ne pas recliquer sur le bouton par erreur :rolleyes:.
 

Pièces jointes

  • Véhicule marche v2.zip
    46 KB · Affichages: 164

cj welch

XLDnaute Occasionnel
Re : Créer des feuilles a partir d'un bouton

salut skoobi,

merci un nouvelle fois pour ton aide formidable.

Pourrais tu modifier le code pour que si on veut refaire les calcules,on puisse le faire.
bien entendu cela exige de supprimer les onglets factures et de les recreer.SI en plus tout pouvait insérer un message type: "vous voulez reellement refaire les calcules serait fantastique.

De plus, pourrais tu m'expliquer les lignes du code qui concerne les cellules copiées vers les factures pour que je puisse éventuellement les modifiers.

Enfin, serait'il possible de masquer l'onglet "model fact" tout le temps, meme quand on click sur le bouton.

enfin serait'il possible de proteger les nouvelles feuilles créés.

Très cordialement

A+
 
Dernière édition:

ledzepfred

XLDnaute Impliqué
Re : Créer des feuilles a partir d'un bouton

SALUT CJ WELCH,

ta demande était facile (cf fichier modifié joint), sur le feuillet commande, ajoute un commanbutton et assure toi qu'il porte le nom CommandButton5 sinon modifie le nom de la macro par le om du commandbutton créé puis insere le code suivant:

Private Sub CommandButton5_Click()
Application.ScreenUpdating = False
Dim NBLIG, i, j As Integer
Dim NOM, FACTURE, PRENOM, MOIS, VEHICULE, CYCLO, UTIL, WE, NBWE, REGUL As String
NBLIG = [A65536].End(xlUp).Row - 8 '(à adapter si les entêtes de colonne ne sont plus ligne 8)
[A9].Select
For i = 1 To NBLIG
j = 2 + i
NOM = ActiveCell.Value
FACTURE = "FACT " & NOM
PRENOM = Cells(ActiveCell.Row, 2).Value
MOIS = [B3].Value
VEHICULE = Cells(ActiveCell.Row, 7).Value
CYCLO = Cells(ActiveCell.Row, 8).Value
UTIL = Cells(ActiveCell.Row, 9).Value
WE = Cells(ActiveCell.Row, 20).Value
REGUL = Cells(ActiveCell.Row, 14).Value
NBWE = Cells(ActiveCell.Row, 19).Value
Sheets("model facture").Copy Before:=Sheets(j)
ActiveSheet.Name = FACTURE
Sheets(FACTURE).[G4].Value = NOM
Sheets(FACTURE).[G5].Value = PRENOM
Sheets(FACTURE).[G8].Value = Format(Date, "dd/mm/yyyy")
Sheets(FACTURE).[A10].Value = "FACTURE : " & MOIS
Sheets(FACTURE).[B15].Value = VEHICULE
Sheets(FACTURE).[B17].Value = CYCLO
Sheets(FACTURE).[B19].Value = UTIL
Sheets(FACTURE).[D21].Value = WE
Sheets(FACTURE).[B25].Value = REGUL
Sheets(FACTURE).[B30].Value = NBWE
Sheets("Commande").Select
ActiveCell.Offset(1, 0).Select
Next
Sheets("model facture").Move Before:=Sheets(3)
End Sub


ça fonctionne sauf si il y a un vrai doublon de nom (exemple deux lignes dont le nom est A, ça va bugger car excel ne peut créer un deuxième feuillet nommé FACT A)
J'ai pas essayé de trouver une solution manque de temps.

en espérant que ça te convienne
a+
 

skoobi

XLDnaute Barbatruc
Re : Créer des feuilles a partir d'un bouton

salut skoobi,

merci un nouvelle fois pour ton aide formidable.

Pourrais tu modifier le code pour que si on veut refaire les calcules,on puisse le faire.
bien entendu cela exige de supprimer les onglets factures et de les recreer.SI en plus tout pouvait insérer un message type: "vous voulez reellement refaire les calcules serait fantastique.

De plus, pourrais tu m'expliquer les lignes du code qui concerne les cellules copiées vers les factures pour que je puisse éventuellement les modifiers.

Enfin, serait'il possible de masquer l'onglet "model fact" tout le temps, meme quand on click sur le bouton.

Très cordialement

A+
Re,
Bonsoir ledzepfred,

J'ai modifié le code pour que si la facture existe, les données sont simplement écrasées ;).
Pour le message, rien de plus simple!:D
J'ai commenté le code. Dis-moi si tu comprends mieux.
Bon test.:)
 

Pièces jointes

  • Véhicule marche v3.zip
    48.2 KB · Affichages: 159

cj welch

XLDnaute Occasionnel
Re : Créer des feuilles a partir d'un bouton

re skoobi,

sa marche et tes explication son claire.

je me pose la question des doublons, serait'il posible d'inscrire dans le nom de l'onglet également la 1ère lettre du prénom.

Enfin, serait'il possible de verrouillé les factures créer.

A+
 

cj welch

XLDnaute Occasionnel
Re : Créer des feuilles a partir d'un bouton

salut skoobi,

oui c'est ça, empécher de réécrire sur les nouvelles feuilles creer, pour pour une personne qui aurait le mot de passe.

N'oublie pas cette histoire de doublon stp

dans l'attente de te lire

A+
 

ledzepfred

XLDnaute Impliqué
Re : Créer des feuilles a partir d'un bouton

bonjour Skoobi,cjwelch,

Si deux noms sont en doublon dans ton fichier, seule la première facture sera créée, la seconde non. Modifier le nom du feuillet en introduisant la première lettre du prénom est facile mais ça ne résoud pas ton problème de doublons (genre j'ai un DURAND Pierre et DURAND Paul!!!). La solution serait d'ajouter le n° de ligne dans le nom du feuillet :
remplacer "Fact " & Nom.Value par "Fact " & Nom.Value &" " & Lig

Tu peux aussi incrémenter les feuillets créés (genre : 1 FACT A, 2 FACT B etc) dans ce cas :
remplacer "Fact " & Nom.Value par Lig - 8 & " Fact " & Nom.Value
Enfin j'ai remarqué que la cellule G8 de chaque facture est susceptible d'accueillir la date, insère donc cette ligne entre with sheets... et ...end with
[G8].value=format(Date,"[$-F800]dddd, mmmm dd, yyyy")

pour la protection et ajoutes juste avant end with le code suivant .protect password:="vendredi"
où vendredi est mon mot de passe
A+
 
Dernière édition:

cj welch

XLDnaute Occasionnel
Re : Créer des feuilles a partir d'un bouton

salut ledzepfred, skoobi,

ca marche merci.

Est il aussi possible d'avoir pour le nom de l'onglet, "le nom + 1ere lettre prénom + n° "pour un lecture plus aisé des onglets.

j'ai aussi remarqué un problème, quand on recalcul, il s'ajoute autant de feuille qu'il y a d'enregistrement. (par ex :pour un enregistrement AAA, on à 2 factures AAA.

Pouvez vous me solutionner ce problème ?

merci
 

ledzepfred

XLDnaute Impliqué
Re : Créer des feuilles a partir d'un bouton

Est il aussi possible d'avoir pour le nom de l'onglet, "le nom + 1ere lettre prénom + n° "pour un lecture plus aisé des onglets.
pour la première lettre du prénom, intègre à la formule du nom du feuillet left(Range("B" & Lig).Value,1)
pour ajouter le numéro, adaptes le code fourni dans mon précédent message

j'ai aussi remarqué un problème, quand on recalcul, il s'ajoute autant de feuille qu'il y a d'enregistrement. (par ex :pour un enregistrement AAA, on à 2 factures AAA.
Pouvez vous me solutionner ce problème ?
merci
encore un qui va dire à son chef c'est moi qui ai tout fait:D
sauf que la tu peux pas avoir le beurre l'argent du beurre et une partie de l'anatomie de la crémière (que ma mère m'interdis de nommer ici). Je m'explique : recliquer sur le bouton "créer facture" c'est comme si toutes les lignes étaient en doublon dès le départ d'où l'adaptation du nom des feuillets pour gérer le pb des doublons.

il te faudrait plutot une autre macro qui modifie une (les) facture(s) existante(s) qui serait quasiment un copier coller de ta macro Cb_Facture_Click

a+
 
Dernière édition:

Discussions similaires

Réponses
16
Affichages
501

Statistiques des forums

Discussions
312 195
Messages
2 086 079
Membres
103 112
dernier inscrit
cuq-laet