Aide bon de commande

  • Initiateur de la discussion Initiateur de la discussion Kim75
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Kim75

XLDnaute Occasionnel
Bonjour à tous,

Dans la rubrique “Téléchargements”, j’ai trouvé un vieux classeur qui correspond à mes tâches de gestion de commandes :

Excel Downloads - Commandes

J’ai tenté d’adapter le code en essayant de le paramétrer du mieux possible à la structure de mon classeur, mais ça fonctionne mal.

Ce serait sympa si quelqu’un, connaissant un peu ce classeur, pouvait y jeter un coup d’œil :

  • Toutes les données entrées dans la feuille ‘Saisie_Commande’ sont correctement reportées sur la feuille Listing, cependant dans cette même feuille ‘Listing’ je remarque que :
    - le nombre 3,3 s’inscrit étrangement dans la cellule IO3.
    - la forme des cellules A3 et B3 diffèrent de celle des autres cellules C3, D3 etc.
  • Après avoir cliqué sur le bouton ‘ENREGISTRER’ de la feuille Saisie_Commande, les donnés entrées ne s’y effacent pas automatiquement.
  • Le Bouton Toupie de la feuille ‘Visual_Commande’ n’a pas l’air de fonctionner.
  • Je ne me sers pas des colonnes I (livré le) et J (payé le) de la feuille ‘Listing’, que je n’ai pas reproduites dans mon classeur, et dont le code peut être de trop.
  • Ce serait inespéré d’avoir un récapitulatif mensuel des commandes, avec les principales données A3 à J3 de la feuille ‘Listing’, ainsi que l'évolutionla du CA et sa répartition par gamme de produit, mais bon, c’est une autre paire de manche.
Cordialement, Kim.
 
Dernière édition:
Re : Aide bon de commande

Bonjour à tous,

Dans la rubrique “Téléchargements”, j’ai trouvé un vieux classeur qui correspond à mes tâches de gestion de commandes :

Excel Downloads - Commandes

J’ai tenté d’adapter le code en essayant de le paramétrer du mieux possible à la structure de mon classeur, mais ça fonctionne mal.

Ce serait sympa si quelqu’un, connaissant un peu ce classeur, pouvait y jeter un coup d’œil :

  • Toutes les données entrées dans la feuille ‘Saisie_Commande’ sont correctement reportées sur la feuille Listing, cependant dans cette même feuille ‘Listing’ je remarque que :
    - le nombre 3,3 s’inscrit étrangement dans la cellule IO3.
    - la forme des cellules A3 et B3 diffèrent de celle des autres cellules C3, D3 etc.
  • Après avoir cliqué sur le bouton ‘ENREGISTRER’ de la feuille Saisie_Commande, les donnés entrées ne s’y effacent pas automatiquement.
  • Le Bouton Toupie de la feuille ‘Visual_Commande’ n’a pas l’air de fonctionner.
  • Je ne me sers pas des colonnes I (livré le) et J (payé le) de la feuille ‘Listing’, que je n’ai pas reproduites dans mon classeur, et dont le code peut être de trop.
  • Ce serait inespéré d’avoir un récapitulatif mensuel des commandes, avec les principales données A3 à J3 de la feuille ‘Listing’, ainsi que l'évolutionla du CA et sa répartition par gamme de produit, mais bon, c’est une autre paire de manche.
Cordialement, Kim.

Bonjour Kim75,

Quelques explications :

Toutes les données entrées dans la feuille ‘Saisie_Commande’ sont correctement reportées sur la feuille Listing, cependant dans cette même feuille ‘Listing’ je remarque que :
- le nombre 3,3 s’inscrit étrangement dans la cellule IO3.

Normal selon le code, mais je n'en comprends pas l'utilité :
Code:
    madate = Range("B3") 'B3 est l'emplacement de la date dans la feuille listing
    Range("IO3") = Month(madate) * 1.1
- la forme des cellules A3 et B3 diffèrent de celle des autres cellules C3, D3 etc.
Normal avec la mise en forme conditionnelle appliquée à ces 2 cellules :
Code:
Range("A3:B3").Select
    Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=SI(ET($I3<>"""";$J3<>"""");VRAI;FAUX)"
    With Selection.FormatConditions(1).Interior
        .ColorIndex = 35
        .Pattern = xlSolid
    End With
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=SI(ET(MAINTENANT()-$B3>25;$I3="""");VRAI;FAUX)"
    With Selection.FormatConditions(2).Interior
        .ColorIndex = 36
        .Pattern = xlSolid
    End With
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=SI(ET(MAINTENANT()-$I3>10;$J3="""";$I3<>"""");VRAI;FAUX)"
    With Selection.FormatConditions(3).Interior
        .ColorIndex = 44
        .Pattern = xlSolid
    End With
Après avoir cliqué sur le bouton ‘ENREGISTRER’ de la feuille Saisie_Commande, les donnés entrées ne s’y effacent pas automatiquement.
Modifie ton code ainsi :
Code:
'selectionne la feuille des commandes
    With Worksheets("Saisie_Commande")
      .Activate
      .Range("O2").Select
      [COLOR="Red"].Range("O2") = Now[/COLOR]
      .Range("O2") = ""
      .Range("I4") = ""
      .Range("O4") = ""
      .Range("J6") = ""
      .Range("P6") = ""
      .Range("E9") = ""
      .Range("E11") = ""
      .Range("I11") = ""
      .Range("O11") = ""
      .Range("F15:F23") = ""
      .Range("F30:F56") = ""
      .Range("F58:F64") = ""
      .Range("O15:O30") = ""
      .Range("O32:O54") = ""
      .Range("O56:O62") = ""
      .Range("A1").Select
      .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
      Exit Sub
    End With
PS : tu peux supprimer la ligne en rouge qui ne sert à rien puisque tu effaces la cellule à la ligne suivante.
Le Bouton Toupie de la feuille ‘Visual_Commande’ n’a pas l’air de fonctionner.
Normal, il n'y a aucun code dans le module du contrôle de la feuil2(Visual_Command):
Code:
Private Sub SpinButton1_Change()

End Sub
Que veux-tu faire varier avec la toupie : la date ou l'affichage de la commande ?
Je ne me sers pas des colonnes I (livré le) et J (payé le) de la feuille ‘Listing’, que je n’ai pas reproduites dans mon classeur, et dont le code peut être de trop.
Je n'ai pas compris la question.
Ce serait inespéré d’avoir un récapitulatif mensuel des commandes, avec les principales données A3 à J3 de la feuille ‘Listing’, ainsi que l'évolutionla du CA et sa répartition par gamme de produit, mais bon, c’est une autre paire de manche.
C'est possible, mais ça demande du temps.

Espérant t'avoir éclairé.

Cordialement.
 
Re : Aide bon de commande

Bonjour papou-net, le forum,

C’est très gentil à toi d’avoir jeté un coup d’œil, merci beaucoup ;-)

Pour ce qui est de l’effacement automatique après enregistrement des données saisies, ça fonctionne avec la modification que tu m’as indiquée.

Maintenant lorsque l'enregistrement se fait, et que l'on affiche la feuille visual_commande, et que l'on réaffiche la feuille de saisie, ça plante dans l'objet ThisWorkbook, au niveau de la ligne :

Range("K2").Formula = "=(LISTING!A3)+1"

J'ai pensé que c'était dû au fait que, contrairement au fichier initial de Excel-Dowloads où il s'agissait de H3 (une seule cellule), ma cellule K2 est fusionnées avec la cellule L2, j'ai donc fait le test avec la cellule K2 non fusionnée avec L2, mais ça plante toujours.

Cordialement, Kim.
 

Pièces jointes

Dernière édition:
Re : Aide bon de commande

Bonjour JNP, le forum,

Merci de l'info, mais il y a bel et bien plantage lorsque :

-1. on saisit les données
-2. on clique sur enregistrement
-3. on affiche la feuille 'visual_commande'
-4. on revient à l'affichage de la feuille 'saisie_commande' (c'est là que ça plante)

Cordialement, Kim.
 
Re : Aide bon de commande

Bonjour le forum,Kim75, JNP,

Oui, sur excel 2007, pas de plantage mais par contre sur mon autre PC , je suis sur excel 2000 et la ça plante.
Juste pour Info car pas assez d'expérience en VBA pour aider.
Bon courage
Jacky
 
Re : Aide bon de commande

Citation :

Maintenant lorsque l'enregistrement se fait, et que l'on affiche la feuille visual_commande, et que l'on réaffiche la feuille de saisie, ça plante dans l'objet ThisWorkbook, au niveau de la ligne :

Range("K2").Formula = "=(LISTING!A3)+1"

J'ai pensé que c'était dû au fait que, contrairement au fichier initial de Excel-Dowloads où il s'agissait de H3 (une seule cellule), ma cellule K2 est fusionnées avec la cellule L2, j'ai donc fait le test avec la cellule K2 non fusionnée avec L2, mais ça plante toujours.


Bonjour Kim, JNP, le Forum,

En fait, l'erreur est dûe au fait que tu tentes de modifier la cellule K2 alors que la feuille est protégée.

Tu dois donc insérer des lignes de déprotection et de protection dans ton code :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object) 'début code fonction saisie commande
  If Sh.Name = "Saisie_Commande" Then
    [COLOR="Red"]Me.Unprotect[/COLOR]
    Range("K2").Select
    Range("K2").Formula = "=(LISTING!A3)+1"
    [COLOR="Red"]Me.Protect[/COLOR]
  End If 'fin code fonction saisie commande
End Sub

Pour simplifier les choses, le mieux est de supprimer ces lignes dans le module ThisWorkbook , et d'ajouter les lignes suivantes dans le module Feuil1(Saisie_Commande) :

Code:
Private Sub Worksheet_Activate()
Me.Unprotect
Range("K2").Select
Range("K2").Formula = "=(LISTING!A3)+1"
Me.Protect
End Sub

Ainsi, tu n'as plus besoin de faire un test sur le nom de la feuille, ce qui accélèrera (de manière imperceptible, mais tout de même) le déroulement de la macro, surtout lorsque la feuille activée n'est pas concernée par ce test.

Tu pourrais aussi tout aussi bien écrire manuellement la formule dans la cellule K2, mais comme tu as prévu d'y mettre un zéro pour créer une commande vierge, celà effacerait la formule.

Espérant t'avoir aidé.

Cordialement.
 
Re : Aide bon de commande

Re JNP

C'est vrai, je suis en 2003, remarque toi aussi t'as trois ans de retard par rapport à 2010 ;-)

En fait puisque la cellule contenant le N° de commande est une fusion K2L2, j'ai alors réécrit la ligne

Range("K2:L2").Formula = "=(LISTING!A3)+1"

Mais ça plante toujours, pas de bol.
 
Re : Aide bon de commande

Bonjour Bebere

Merci de l'info, mais j'ai essayé ces 3 combinaisons et ça ne marche pas :

PHP:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Sh.Name = "Saisie_Commande" Then
    ActiveSheet.Unprotect
    Range("K2").Select
    Range("K2").Formula = "=(Listing!A3)+1"
    End If
    ActiveSheet.Protect
End Sub

PHP:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    ActiveSheet.Unprotect
    If Sh.Name = "Saisie_Commande" Then
    Range("K2").Select
    Range("K2").Formula = "=(Listing!A3)+1"
    End If 
    ActiveSheet.Protect
End Sub

PHP:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Sh.Name = "Saisie_Commande" Then
    ActiveSheet.Unprotect
    Range("K2").Select
    Range("K2").Formula = "=(Listing!A3)+1"
    ActiveSheet.Protect
    End If
End Sub

Kim
 
Re : Aide bon de commande

Re JNP

C'est vrai, je suis en 2003, remarque toi aussi t'as trois ans de retard par rapport à 2010 ;-)

En fait puisque la cellule contenant le N° de commande est une fusion K2L2, j'ai alors réécrit la ligne

Range("K2:L2").Formula = "=(LISTING!A3)+1"

Mais ça plante toujours, pas de bol.

Ne t'énerves pas, Kim, je t'ai répondu à 11h23 et Bebere t'as confirmé à 11h25. Tu vois, tu n'es pas tout seul !

Cordialement.
 
Re : Aide bon de commande

Bonjour Papou-net, Jacky49,

C’était de l’humour je t’assure Papou-net, je ne vous remercierais jamais assez pour votre aide.
C’était bête de ne pas avoir précisé la version d’Excel utilisée, ces versions qui n’en finissent pas ;-)

Merci Jacky49 !

Kim.
 
Dernière édition:
Re : Aide bon de commande

bonjour Papou-net,Jacky
excel2003 et ce code c'est ok
Private Sub Workbook_SheetActivate(ByVal Sh As Object) 'début code fonction saisie commande
If Sh.Name = "Saisie_Commande" Then
With Sheets("Saisie_Commande")
.Unprotect
Set ma = .Range("K2").MergeArea
If .Range("K2").MergeCells Then
ma.Cells(1, 1).Formula = "=(LISTING!A3)+1"
End If
.Protect
End With
End If

End Sub
allez Kim le calme après la tempête
à bientôt
 
Re : Aide bon de commande

Re Bebere,

Merci pour ce dernier code, mais ça na marche pas en ce sens qu'il a annulé l'effacement automatique des données saisies [après enregistrement] de la feuille 'saisie commande", l'effacement marchait bien avant.

Bien à toi, Kim.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
947
Retour