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
 

cj welch

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

salut skoobi,

j'ai essayé d'élaborer le code et je l'ai donc rajouter dans la macro du bouton controle:
Range("A15:A43").Select
Selection.AutoFilter
ActiveSheet.Range("$A$15:$A$44").AutoFilter Field:=1, Criteria1:="<>"

malheureusement, cela fonctionne mais pas au niveau de la feuille controle mais a celle de la feuille commande. De plus, est 'il possible que l'entonoir du filtre ne s'affiche pas ?

Dans l'attente de te lire

A+
 

skoobi

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

Re,

normal car à ce moment là du code la feuille active est la feuille"commande"...
Il faut préciser la feuille "controle" dans le code:
Code:
[COLOR=black][SIZE=3][FONT=Times New Roman]With Sheets("controle")[/FONT][/SIZE][/COLOR]
[COLOR=blue][FONT=Verdana] .Range("A15:A43").AutoFilter[/FONT][/COLOR]
[FONT=Verdana][COLOR=blue] .Range("$A$15:$A$44").AutoFilter Field:=1, Criteria1:="<>"[/COLOR][/FONT]
[COLOR=blue][FONT=Verdana]End With[/FONT][/COLOR]
De plus, est 'il possible que l'entonoir du filtre ne s'affiche pas ?
Sheets("controle").AutoFilterMode = False
 

cj welch

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

salut skoobi,

je veins de rentrer le code et j'ai un message d'erreur qui apparait
"erreur d'exécution 424,objet requis " et cela me renvoi vers la ligne du code
Range("A15:A43").AutoFilter

de plus,j'ai une autre demande a te faire, si je veut que dans une cellule B1 qui est au format date mmmm aaaa, la 1ere lettre du mois soit en Majuscule, quel code faut il utiliser, sachant que je ne peut pas utiliser Worksheet_Change(ByVal Target As Range) car il l'ai déja utilisé. j'avais trouvé un code sur ce forum mais il faudrait peut etre l'adapter a la cellule

Sub MajDebMot()
For Each cell In Selection

cell.Value = Application.WorksheetFunction.Proper(cell.Value)
Next cell
End Sub

merci de ton aide

A+
 
Dernière édition:

skoobi

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

Re,

attention, le point "." devant range est important, il renvoie au With Sheets("controle"). De plus, commence la plage en A12 et non en A15:

Code:
  With Sheets("controle")
   .Range("A12:A43").AutoFilter
   .Range("$A$12:$A$44").AutoFilter Field:=1, Criteria1:="<>"
  End With

Pour la date en B1:

Code:
[B1].Value = Application.WorksheetFunction.Proper(Format([B1].Value, "mmmm yyyy"))

Oubli le code pour masquer la flèche du filtre, ce n'est pas ça.
D'ailleurs, je crois que ce n'est pas possible.
 

ledzepfred

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

Maitre Skoobi, padawan cjwelch,

la propriété visibledropdown permet de masquer les flèches du filtre automatique sans empêcher le filtrage il me semble, essayes donc

With Sheets("controle")
.Range("A12:A43").AutoFilter
.Range("$A$12:$A$44").AutoFilter Field:=1, Criteria1:="<>", visibledropdown := false
End With

par contre il y aura autant de flèches que de colonnes de données, dans ce cas une boucle peut être utile

For i = 1 To COL
Selection.AutoFilter Field:=i, visibledropdown:=False
Next

où COL est la dernière colonne de données pouvant être défini par [IV1].end(xltoleft).column dans le cas où les entêtes de colonnes sont ligne 1

ou via la définition de LASTCELL s'il n'y a pas d'entêtes de colonnes
comme ceci

Set lastcell = Cells.SpecialCells(xlCellTypeLastCell)
For i = 1 To lastcell.Column
Selection.AutoFilter Field:=i, visibledropdown:=False
Next

à adapter bien sur dans le cas présent où le feuillet actif n'est pas celui où on filtre


A+
 

cj welch

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

salut skoobi,

j'ai inscrit le code concernant le filtre après Exit sub, le message d'erreur n'apparait plus mais rien ne se passe.

concernant le format de cellule b1, la aussi rein ne se passe. la macro se lance automatiquement ou pas. moi je n'est pas associé de bouton a cette macro, j'aimerais qu'elle soit automatique.
A+
 

skoobi

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

j'ai inscrit le code concernant le filtre après Exit sub, le message d'erreur n'apparait plus mais rien ne se passe.
Non, il faut le mettre avant Exit Sub car cette instruction stop la macro.

Code:
   MAJControle
  With Sheets("controle")
   .Range("A12:A43").AutoFilter
   .Range("$A$12:$A$44").AutoFilter Field:=1, Criteria1:="<>"
  End With
[COLOR=Blue][B][B1].Value = Application.WorksheetFunction.Proper(Format([B1].Value, "mmmm yyyy"))[/B][/COLOR]  
Exit Sub
Et pour le format, en bleu.

Edit: hello ledzepfred
la propriété visibledropdown permet de masquer les flèches du filtre automatique
Mais c'est bien sûr, bien vue fred!
 
Dernière édition:

cj welch

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

re
Ca serait logique en effet, si l'userform etait utilisé a chaque ouverture, ce qui n'est malheureusement pas le cas.

pense tu qu'il soit possible de l'integrer dans Worksheet_Change(ByVal Target As Range)
sans alterer les macro qui y sont déja ?

A+
 

skoobi

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

Oui, c'est possible.
Il suffit de bien définir la condition qui appliquera ce format à la cellule.
Si tu veux l'appliquer pour n'importe quelle modification dans la feuille, tu la place au début du code.
 

cj welch

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

re,

j'ai collé le code juste derrière, privat sub et là catastrophe, toutes les données on commencer à clignoter en boucle, excel ne se fermais plus et j'ai eu un message "pile insuffisante". Pourrait tu me gider dans le placement de ce code.
rivate Sub Worksheet_Change(ByVal Target As Range)

If Target.Rows.Count > 1 Or Target.Columns.Count > 1 Or Target.Column <> 21 Then Exit Sub
If Target.Row > 8 And Target.Column = 21 Then
ActiveSheet.Unprotect
If Target = "" Or Target = 0 Then
Target.Offset(0, 1).Value = ""
Else
With UserForm2
.TextBox1.Value = Target.Row
.TextBox2.Value = Target.Value
.OptionButton1 = True 'valider
.Show
End With
End If
ActiveSheet.Protect
End If
End Sub

Merci
 

skoobi

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

Re,

arrfff, désolé, il faut stopper les événements au début du code car comme tu modifies dans le code la cellule, la macro se relance indéfiniment, et réactiver après:

Code:
Application.EnableEvents = False
[COLOR=Black][B1].Value = Application.WorksheetFunction.Proper(Format([B1].Value, "mmmm yyyy"))[/COLOR]
Application.EnableEvents = True
.......
.........
 

cj welch

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

salut skoobi,

j'ai presque terminé mon classeur, j'ai 2 petit ptoblème:

le premier qui est très simple, quel format faut il maitre pour que dans la formule de calcul suivante, le produit s'arrondis a 2 chiffres après la virgule.
.Range("H" & Lig + 2).Formula = ShComm.Range[B3].Value "* 20/ 100)" (je veu en H (feuille reversement), le produit de $B$3 (feuille commande)*10%.Le résultat doit etre arrondi a 2 chiffres après la virgule. je n'arrive pas a trouver mon erreur.

la seconde est que dans la feuille reversement, j'ai copie la meme macro que celle du bouton "controle" ( bien sur j'ai modifié les parametres). Ca fonctionne bien, seulement j'ai un problème de filtre. En effet, quand j'appuis sur le bouton controle, le filtre se fait normalement, puis quand j'appuis sur le bouton reversement, le filtre s'applique aussi mais efface le filtre dela feuille controle. aurait tu une solution a me proposer.

Merci
 
Dernière édition:

Discussions similaires

Réponses
10
Affichages
222
Compte Supprimé 979
C
Réponses
7
Affichages
334