Formulaire

brigitte7138 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Dans un exercice que je suis entrain de faire, je suis confrontée à deux problèmes dont je n'arrive pas à trouver les solutions malgré mes recherches sur le net

1: concernant cette formulation VBA:

Private Sub Compter_Click()
'Compter les colis cuisiné'
Range("C7:F150").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Tableauxrécap").Select
Range("G8").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=60
End Sub

Question: Par quoi dois je remplacer "F150" pour que la copie se fasse jusqu'à la dernière ligne (ou première ligne vide)?


2: Dans le tableau suivant: (les valeurs de celui ci changent à chaque nouvelle commande comme le nombre de lignes d'ailleurs)

Nature Tomate Oignon Code
2 ------- 2 ------- 2 ----- -- 222

1 ------- 1 ------- 1 ----- -- 111
1 ------- 1 ------- 1 ----- -- 111

4 ------- 1 ------- 0 ----- -- 410
4 ------- 1 ------- 0 ----- -- 410

4 ------- 0 ------- 1 ----- -- 401

2 ------- 2 ------- 1 ----- -- 221

3 ------- 1 ------- 1 ----- -- 311

2 ------- 1 ------- 2 ----- -- 212

1 ------- 1 ------- 3 ----- -- 113

Question: En tenant compte de cet exemple, comment puis je compter le nombre de code identiques et que s'affiche sur ma feuille de commande:

1 colis avec 2 nature, 2 tomate, 2 oignon

2 colis avec 1 nature, 1 tomate, 1 oignon

2 colis avec 4 nature, 1 tomate,

1 colis avec 4 nature, 1 oignon

etc...

Merci beaucoup par avance à celle/celui qui prendra le temps de se pencher sur ce problème
bien à tous/toutes. BrigitteB

5 réponses

Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
Bonjour,

Voici 2 solutions couramment employées pour trouver la dernière ligne renseignée :
1) Pour que la copie se fasse jusqu'à la ligne qui précède la première ligne vide dans la colonne C :
Range("C7:F" & Range("C7").End(xlDown).Row).Copy
2) Pour que la copie se fasse jusqu'à la dernière ligne renseignée de la colonne C :
Range("C7:F" & Range("C" & Rows.Count).End(xlUp).Row).Copy
Dans le premier cas, on se positionne sur C7 et on descend dans la colonne jusqu'à trouver la dernière cellule qui précède une ligne vide.
Dans le second cas, on se positionne sur la dernière cellule de la colonne C et on remonte dans la colonne jusqu'à trouver une cellule renseignée.
Si ta plage ne comporte pas de cellules vides, le résultat est le même.

Pour le second point, voici un exemple qui utilise un dictionnaire pour établir la liste des codes (sans doublon). Ensuite, il suffit de faire le comptage d'apparition de chacun de ces codes.
https://www.cjoint.com/?DCohfyZ1DMu

A+
0
brigitte7138 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir Gyrus
La réponse à ma 1ère question est tout à fait appropriée. Merci beaucoup.
S'agissant de la seconde, j'ai téléchargé le fichier, cliqué sur "Test" et j'obtiens exactement le tableau désiré. Par contre, je n'ai pas d'explications pour le construire. Il me semble que quelque chose essaie de se télécharger mais sans succès.

En tous cas, merci de mettre tes compétences à disposition de néophytes comme moi. C'est très appréciable. Bien à toi. BB
0
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
Bonsoir brigitte7138,

Normalement, lorsque tu cliques sur le bouton TEST, tu dois voir apparaitre une boîte de dialogue qui indique le résultat attendu.
Ce résultat est obtenu avec une procédure VBA.
Pour voir cette procédure, il faut ouvrir l'éditeur en appuyant sur alt + F11 puis cliquer sur le module Feuil1.

Dans ton message initial, tu disais souhaiter que le résultat s'affiche sur une feuille de commande. Mais comme tu n'as pas joint de fichier à ton message, j'ai du me contenter d'effectuer l'affichage dans une boîte de dialogue. C'est suffisant pour la compréhension du code. Reste à l'adapter à ton fichier.... à condition de connaitre VBA. J'ai supposé que c'était le cas puisque tu effectue des exercices sur VBA.
Je me trompe ?

A+
0
brigitte7138 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir Gyrus

Ça y est j'ai réussi à transposer ce que tu m'as envoyé à mon cas...
J'ai même réussi à rajouter une colonne à un tableau...
Seul bémol: les petits tableaux "microsoft excel" qui sortent avec les informations qui conviennent parfaitement, ne restent pas et surtout ne sont pas imprimables, ce qui est le but recherché.

Je me permets de te joindre mon classeur excel. J'espère ne pas abuser de tes compétences et de ton temps.. La feuille à considérer est la feuille: "tableauxrécap".

Il me reste encore à peaufiner ("désalourdir") la feuille facture en insérant un formulaire qui me permettra avec un menu déroulant de faire figurer sur la facture uniquement les objets de la commande

J'ai supposé que c'était le cas puisque tu effectue des exercices sur VBA.

Je suis complètement néophyte et j'ai essayé depuis peu de construire quelque chose grâce notamment à quelques vidéos bien faites sur "you tube", et depuis peu à toi, via ce forum.

Ton intervention sur ma dernière question me prouve que j'ai encore ENORMEMENT à apprendre.... Mais, bon, je vais persévérer.
Comment peut on d'ailleurs apprendre le langage VBA ?

Encore merci Gyrus. Bien à toi BB

https://www.cjoint.com/?DCrdLp2Khaz
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
Bonjour,

Voici un début de solution avec une feuille dédiée (feuille nommée "Impression").
C'est du brut de fonderie mais l'essentiel y est. Tu peux toujours aménager cette feuille ou adapter le traitement.

https://www.cjoint.com/?DCrs6xjQdWP

A+
0