Classement onglet excel par ordre croissant
Résolu
celim56
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voila, je suis bloqué sur un problème VBA Excel depuis pas mal de temps et je viens sur ce forum pour trouver de l'aide! Merci à ceux qui répondront...
A partir d'une textbox (et de la valeur numerique renseignée dans celle-ci), Excel me créer des feuilles "order" (bon de commande) (par un copier/coller d'une Order1 fixe ) correspondantes à la valeur textbox. Ces feuilles se différencient par un nombre (Order1, Order2, Order3,etc.).
Mon problème est qu'il les classes dans l'ordre décroissant (Ex: j'écris la valeur '4' dans la textbox, Excel me créer 3 feuilles Order selon l'Order1 dans l'ordre suivant: Order1, Order4, Order3, Order2).
Voici une partie de mon code ci-dessous: (enregistrée dans un Userform)
Private Sub TextBox1_AfterUpdate()
Dim numsheets As Integer
Dim i As Integer
Dim Value As Integer
Const MinValue = 1
Const DefValue = 1
Const MaxValue = 20
numsheets = Val(TextBox1.Value)
Select Case Val(TextBox1.Value)
Case MinValue To MaxValue
For i = 2 To numsheets
Sheet9.Copy after:=Sheets(2) 'Worksheets.Name("Order" & i)
ActiveSheet.Name = "Order" & i
ActiveSheet.Range("P2").Value = "Order " & i '-> personnalize the orders!
ActiveSheet.Range("B41").Value = "SUMMARY Order " & i
ActiveSheet.Range("P41").Value = "TOTAL - Order " & i
Next i
…
J'espère avoir été assez claire dans mes explications, sinon n'hésitez pas à me demander!!!
Merci à vous...
Voila, je suis bloqué sur un problème VBA Excel depuis pas mal de temps et je viens sur ce forum pour trouver de l'aide! Merci à ceux qui répondront...
A partir d'une textbox (et de la valeur numerique renseignée dans celle-ci), Excel me créer des feuilles "order" (bon de commande) (par un copier/coller d'une Order1 fixe ) correspondantes à la valeur textbox. Ces feuilles se différencient par un nombre (Order1, Order2, Order3,etc.).
Mon problème est qu'il les classes dans l'ordre décroissant (Ex: j'écris la valeur '4' dans la textbox, Excel me créer 3 feuilles Order selon l'Order1 dans l'ordre suivant: Order1, Order4, Order3, Order2).
Voici une partie de mon code ci-dessous: (enregistrée dans un Userform)
Private Sub TextBox1_AfterUpdate()
Dim numsheets As Integer
Dim i As Integer
Dim Value As Integer
Const MinValue = 1
Const DefValue = 1
Const MaxValue = 20
numsheets = Val(TextBox1.Value)
Select Case Val(TextBox1.Value)
Case MinValue To MaxValue
For i = 2 To numsheets
Sheet9.Copy after:=Sheets(2) 'Worksheets.Name("Order" & i)
ActiveSheet.Name = "Order" & i
ActiveSheet.Range("P2").Value = "Order " & i '-> personnalize the orders!
ActiveSheet.Range("B41").Value = "SUMMARY Order " & i
ActiveSheet.Range("P41").Value = "TOTAL - Order " & i
Next i
…
J'espère avoir été assez claire dans mes explications, sinon n'hésitez pas à me demander!!!
Merci à vous...
A voir également:
- Classement onglet excel par ordre croissant
- Excel trier par ordre croissant chiffre - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Raccourci rouvrir onglet fermé - Guide
- Déplacer colonne excel - Guide
4 réponses
Bonjour,
J'aurai quelques questions en effet:
Pourquoi un Select Case Val(TextBox1.Value) ? Surtout avec un Case de 1 à 20 ???
Que représente Sheet9.Copy ???
Dim Value As Integer Value est un mot réservé !!! ca va poser un problème quelque part.
Il est normal que la feuille créée se positionne juste après la feuille 2, c'est à cause de ça : Sheet9.Copy after:=Sheets(2)
;o)
J'aurai quelques questions en effet:
Pourquoi un Select Case Val(TextBox1.Value) ? Surtout avec un Case de 1 à 20 ???
Que représente Sheet9.Copy ???
Dim Value As Integer Value est un mot réservé !!! ca va poser un problème quelque part.
Il est normal que la feuille créée se positionne juste après la feuille 2, c'est à cause de ça : Sheet9.Copy after:=Sheets(2)
;o)
Bonjour Polux, et merci de t'être penché sur mon problème!!
Bon, comme tu as pu le remarquer, je suis loin d'être un foudre de guerre en VB!!! lol mais j'apprends au fur et à mesure. D'ailleurs, le forum de comment ça marche m'est d'une grande utilité!! ;-)
Pour répondre à ta première question, j'ai utilisé un 'Case' parce que ça me semblait le plus adapté à la situation. Le code n'apparaît pas entièrement, le Case se poursuit sur différents cas, comme :
-Case Is < MinValue
-Case Is > MaxValue
Pour la seconde question, la Sheet9 correspond à mon Order1 (qui est recopiée selon la valeur de la TextBox).
Pour la propiété 'Valeur', je voulais préciser au programme que ma valeur soit forcément numérique!
Enfin, J'aimerai justement trouver une alternative au 'Copy after' pour qu'elles se mettent dans l'ordre chronologique!! ;-)
J'espère t'avoir éclairé un peu plus!!!! @+
Bon, comme tu as pu le remarquer, je suis loin d'être un foudre de guerre en VB!!! lol mais j'apprends au fur et à mesure. D'ailleurs, le forum de comment ça marche m'est d'une grande utilité!! ;-)
Pour répondre à ta première question, j'ai utilisé un 'Case' parce que ça me semblait le plus adapté à la situation. Le code n'apparaît pas entièrement, le Case se poursuit sur différents cas, comme :
-Case Is < MinValue
-Case Is > MaxValue
Pour la seconde question, la Sheet9 correspond à mon Order1 (qui est recopiée selon la valeur de la TextBox).
Pour la propiété 'Valeur', je voulais préciser au programme que ma valeur soit forcément numérique!
Enfin, J'aimerai justement trouver une alternative au 'Copy after' pour qu'elles se mettent dans l'ordre chronologique!! ;-)
J'espère t'avoir éclairé un peu plus!!!! @+