Tableau volume formule VBA

Bonjour a tous,

J'ai besoin de votre aide au sujet de mon tableau que je dois réaliser a mon travail.

La structure est en place mais je rencontre plusieurs problème, j'ai beau essayé mais je n'y arrive pas du a ma faible connaissance en vba malgré mes nombreuses recherche et essai.

Voila sur le tableau ci joint, mes problemes sont :

1) j'aimerais que la ou je rentre les données volume camion et volume palette , cela rentre en format nombre et non en format texte

2) idem pour la date je n'arrive pas a la rentré au format date pour pouvoir calculer le mois et le n° de semaine.

3) J'aimerais aussi qu'a chaque fois que je valide ma saisie, sur mon tableau excel une ligne sur deux soit de couleur différente par exemple blanc puis vert clair.

4) Sur les colonnes "total camion jour " et total palette jour" cela ce calcule automatiquement a chaque nouvelle saisie.

Je tiens a remercier d'avance la ou les personnes qui m'aideront

ps : le tableau est fait en partie a mon travail en utilisant excel 2003

Bonne journée

julien.

Bonjour

Dans ton ISF, supprime toutes les macros --> Private Sub TextBox_Change

Remplace ensuite ta macro Private Sub CommandButton1_Click() par celle ci-dessous

Private Sub CommandButton1_Click()
Dim ctrl As Control
Rows("10:10").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A10") = CDate(TextBox1.Value)
Range("I10") = TextBox10.Value
Range("H10") = TextBox11.Value
Range("Q10") = TextBox13.Value
Range("S10") = TextBox14.Value
Range("R10") = TextBox15.Value
Range("T10") = TextBox16.Value
Range("U10") = TextBox17.Value
Range("V10") = TextBox18.Value
Range("W10") = TextBox19.Value
Range("G10") = TextBox2.Value
Range("P10") = TextBox3.Value
Range("O10") = TextBox4.Value
Range("N10") = TextBox5.Value
Range("M10") = TextBox6.Value
Range("L10") = TextBox7.Value
Range("K10") = TextBox8.Value
Range("J10") = TextBox9.Value
For Each ctrl In Me.Controls
    If TypeName(ctrl) = "TextBox" Then ctrl.Text = ""
Next ctrl
End Sub

Dans le module 3, remplace la macro par celle-ci :

Sub Afficher_formulaire_de_saisie()
UserForm1.Show
End Sub

Pour la formule des totaux, te suffit de mettre une somme en colonne E

Note : faudrait savoir ce qu tu mest en ligne 9

Amicalement

Bonjour Dan et merci pour ta reponse rapide.

Alors pour la ligne 9 je ne ets rien en faite , donc en fait je peux remplacer le range 10 par le range 9 si je suis ton raisonnement.

Je vais tester cette nuit au travail et te tien au courant des demain.

Encore un grand merci de m'aider et de me permettre d'apprendre .

Bonne journée

Bonjour Dan,

Alors j'ai bien suivi ce que tu m'a écrit est ça marche nickel, merci beaucoup.

Maintenant j'aurais besoin de ton aide pour :

1) j'ai un problème a chaque insertion de ligne ( voir tableau ci joint ) après avoir saisie puis valider mon formulaire, la ligne ce met bien sur le tableau mais dans les premières colonnes ça me rempli les case de la couleur que j'ai mit pour mes intitulé de colonne.

Comment faire pour enlever cela ?Aussi j'aimerais si possible qu'a chaque nouvelle entrée une couleur de ligne différente apparaisse : par exemple une ligne vert pale puis une ligne blanche puis vert pale ....

2) pour les saisie des colonnes vides ( B,C,D,E,F) j'aimerais qu'a chaque nouvelle entrée ces colonne se remplisse automatiquement.

Faut t'il pour ca une formule ou rentrer un code VBA

Merci d'avance et bonne journée

julien

Re,

1) j'ai un problème a chaque insertion de ligne ( voir tableau ci joint ) après avoir saisie puis valider mon formulaire,

La technique d'insertion d'une ligne vers le bas n'est pas toujours appropriée. Ppuis-je savoir si toutes tes lignes en dessous de la ligne 8 sont vides actuellement ?? Si oui je te donne le code

2) pour les saisie des colonnes vides ( B,C,D,E,F) j'aimerais qu'a chaque nouvelle entrée ces colonne se remplisse automatiquement.

On peut le faire par formule ou par VBA. j'ai voulu te proposer quelque chose hier pour les formules malheureusement ton fichier ne mentionne pas les formules que tu souhaite en colonnes E et F

Si tu me donnes la formule à mettre en E et F je peux voir ce que l'on peut faire sous VBA

A te relire

Bonjour Dan,

Alors pour le petit 1) oui pour l'instant je n'est rien sasie sur le tableau c'est juste des essai. Mais je pensé ne vaut mieu pas que les cellules se rajoute normalement a la suite et non comme pour l'instant avec insertion de ligne vers le bas. Si oui que faut il que je change dans le codes VBA ?

pour le petit 2) Alors pour les formules en colonne E et F voici la formule :

colonne E : E9 = somme(G9+I9+K9+R9+T9+V9)

colonne F : F10 = somme(H9+J9+L9+N9+O9+P9+Q9+S9+U9+W9)

Je suis desolé de ne pouvoir essayer la journée car je n'est qu'un chromebook comme ordi. C'est pour ca que j'attend d'etre au travail pour pouvoir avancé dans le tableau mais en tous qu'a je te remercie beaucoup.

Bonne journée

re,

On peut tout simplement ajouter les infos l'une à la suite des autres plutôt que d'insérer une ligne.

Change le code que je t'ai donné par celui ci-après :

Private Sub CommandButton1_Click()
Dim ctrl As Control
Dim dlg As Integer

dlg = ActiveSheet.Cells.Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
Range("A" & dlg) = CDate(TextBox1.Value)
Range("B" & dlg) = WorksheetFunction.WeekNum(Range("A" & dlg), 2) 'semaine
Range("C" & dlg) = Year(Range("A" & dlg)) 'annee
Range("D" & dlg) = Month(Range("A" & dlg)) 'mois
Range("I" & dlg) = TextBox10.Value
Range("H" & dlg) = TextBox11.Value
Range("Q" & dlg) = TextBox13.Value
Range("S" & dlg) = TextBox14.Value
Range("R" & dlg) = TextBox15.Value
Range("T" & dlg) = TextBox16.Value
Range("U" & dlg) = TextBox17.Value
Range("V" & dlg) = TextBox18.Value
Range("W" & dlg) = TextBox19.Value
Range("G" & dlg) = TextBox2.Value
Range("P" & dlg) = TextBox3.Value
Range("O" & dlg) = TextBox4.Value
Range("N" & dlg) = TextBox5.Value
Range("M" & dlg) = TextBox6.Value
Range("L" & dlg) = TextBox7.Value
Range("K" & dlg) = TextBox8.Value
Range("J" & dlg) = TextBox9.Value

Range("E" & dlg) = Range("G" & dlg) + Range("I" & dlg) + Range("K" & dlg) + _
                    Range("R" & dlg) + Range("T" & dlg) + Range("V" & dlg) 'somme nb camion

Range("F" & dlg) = Range("H" & dlg) + Range("J" & dlg) + Range("L" & dlg) + Range("N" & dlg) + Range("O" & dlg) + _
                    Range("P" & dlg) + Range("Q" & dlg) + Range("S" & dlg) + Range("U" & dlg) + Range("W" & dlg) ' somme nbr pal

For Each ctrl In Me.Controls
    If TypeName(ctrl) = "TextBox" Then ctrl.Text = ""
Next ctrl
End Sub

Le calcul des sommes est fait de sorte que tu puisses lire le code et le changer éventuellement

Il faudra vérifier si pour une année bisextile le calcul des semaines est correct

Si ok, clique sur le v evrt lors de ta réponse afin de cloturer le fil

Amicalement

Merci dan trop rapide, merci

Je regarde ce soir au boulot et te tiens au courant

Bonne apres midi

Slt dan alors voila j'ai essayé au travail.

Tous est ok sauf une ligne qu'il me surligne en jaune c'est la ligne pour le calcul des numeros de semaine :

Range("B" & dlg) = WorksheetFunction.WeekNum(Range("A" & dlg), 2) 'semaine

Pour voir si le reste etait ok j'ai supprimé cette ligne est tous le reste est bon.

Pense tu qu'il y a une erreur ou sinon faut il mieux rentré une formule dans la colonnne pour le calcul des numeros de semaine

Merci d'avance et bonne journée

julien.

re,

jajawine a écrit :

Tous est ok sauf une ligne qu'il me surligne en jaune c'est la ligne pour le calcul des numeros de semaine :

Range("B" & dlg) = WorksheetFunction.WeekNum(Range("A" & dlg), 2) 'semaine

Normal car cette fonction n'existe pas dans la version excel 2003.

Fais ceci :

  • Pour conserver cette ligne pour le cas où tu passerais à la version 2010 d'excel, désactive la ligne en plançant une apostrophe juste devant Range("B....), cela fera changer la couleur de cette ligne.
  • mets les instructions ci-dessous en lieu et place de cette ligne
Dim Nosem
Dim d As Date
d = Int(CDate(TextBox1.Value))
Nosem = DateSerial(Year(d + (8 - Weekday(d)) Mod 7 - 3), 1, 1)
Nosem = ((d - Nosem - 3 + (Weekday(Nosem) + 1) Mod 7)) \ 7 + 1
If Nosem >= 52 And Month(d) = 1 Then Nosem = 0
Range("B" & dlg) = Nosem

Amicalement

Bonjour Dan

Merci beaucoup je teste ce soir et te tiens au courant

Par contre peut tu m'expliquer a quoi correspond quand tu saisi Range ("A" & dlg) le "& dlg "

Merci d'avance

re,

dlg est une variable qui correspond à la dernière ligne trouvée remplie dans ton tableau.

A chaque fois que tu démarres le code, la variable dlg est initialisée et prend la valeur correspondant à la dernière ligne complétée du tableau. Dans l'instruction je lui ajoute 1 pour repérer la ligne vide qui va etre complétée de tes données reprises dans l'USF

Amicalement

Bonjour Dan,

Voila tous marche impeccable, j'aurais juste une dernière requête par rapport au tableau.

En fait au niveau de la colonne D qui me donne le numéros de mois avec cette formule :

Range("D" & dlg) = Month(Range("A" & dlg)) 'mois

J'aimerais savoir s'il est possible d'avoir le mois ecrit en texte au lieu du numeros ? ex : janvier au lieu de 1

Merci d'avance et bonne journée

Julien.

Re,

Essaie en remplaçant, l'instruction par celle-ci

Range("D" & dlg) = Format(Month(Range("A" & dlg)), "mmmm") 'mois

Si tout ok, clique sur le v vert à coté du bouton EDITER lors de ta réponse afin de cloturer le fil

Crdlt

Bonjour dan,

donc j'ai essayé ce code, et le problème c'est qu'il m'affiche toujours le mois de janvier malgré que les date soit par exemple 6/07/14 ou 14/02/14

dans l'attente

merci encore et bonne journée

re

Oups répondu trop vite et j'avais pas revérifié...

Essaie plutot ceci :

Range("D" & dlg) = Format(Range("A" & dlg), "mmmm") 'mois

Crdlt

Bonjour Dan,

Tous marche impec

Je tiens a te remercier de m'avoir énormément aidé.

J'essai par des vidéos et aussi par le site excel pratique d'apprendre mais ce n'est quand même pas facile

Si tu as un conseil a me donner je suis preneur

Encore un grand merci et bonne journée

julien

Rechercher des sujets similaires à "tableau volume formule vba"