Validation d'un Usf

Bonsoir,ThauThèmeet le reste du forum,

peux tu m’éclairé sur ton code dont on à parlé sur un sujet de discution

j'essaie trouver comment valider mes combobox dans mon bouton ajouté mais sa plante Merci.

19kira-v01.xlsm (20.04 Ko)

Bonsoir Kira, bonsoir le forum,

J'ai modifié le code puisque les besoins étaient différents. Regarde le nom des Labels (cela permet de boucler et d'avoir le message correspondant au contrôle) et surtout, regarde la propriété Tag des contrôles de données (textboxes et comboboxes). Elle correspond à la colonne qui reçoit la données dans l'onglet O. Mais comme elle est de type String, je suis obligé de la convertir en Byte dans le code avec CByte(CTRL.Tag). Ces deux astuces permettent de boucler sur les différents contrôles...

Si tu ne comprends pas n'hésite pas à demander...

Le fichier :

22kira-v02.xlsm (22.68 Ko)

Re merci ThauThème

Je regarde cela après mon mon cours merci encore

Re merci j'ai regardé ton code et j'ai compris ,

Par contre j'au bouton modifier pour rappeler une ligne pour modifier une saisie jusqu’à la pas de soucie je sais le faire, mais je voudrais savoir le faire avec ton code qui à l'air plus simple il me semble peux tu' M éclairé STP

18kira-v03.xlsm (23.72 Ko)

bonjour Kira972j, thautheme et le forum

kira est ce un fichier client que tu essaie de faire, car j'en ai un a base de module de classe et qui gère les clients qui sont une entreprise et donc ont une colonne de plus pour mettre "a l'attention" et une autre pour un complément d'adresse et l'ajout sur feuille gère s'il y a ou pas ces 2 options

c'est comme tu le veux

Pascal

Re ;Grisan

C'est bien un model que j'essai de faire pour changer un peu de mes codes habituel

J'essaie d’évoluer un peux car je peux crée un formulaire de saisie qui modifie et supprime des lignes pas de soucis

Mais lorsque j'ai vue comment ThauTheme à utiliser ses codes et comme j'aime bien apprendre donc j'essaie autre chose .

Merci en tout mais sa ne me coûte rien de voir ton fichier lol

bonjour Kira972j

le fichier que je vais joindre n'est pas de moi mais trouvé sur excel-dowloads et c'est une œuvre de Dranreb, je l'utilise très bien sur mon classeur de facturation

Pascal

Re Grisan

Merci à toi,

je joins un facturier donc j'ai commencé a bosser dessus et presque terminé jete y un oeil

Tu peux rentré des articles et client soit par un USF ou par macro d'enregistrement et plein d'autre chose, le petit hic

C'est j'ai masquer les onglets de feuilles car j'ai crée des bouton de racourcie dans la feuille accueil,mais je n'arrive plus à afficher les onglets lol.

bonjour Kira

merci pour ton fichier qui est bien mais a beaucoup de .select qui ralentisse un peu le fonctionnement des codes

autrement pour afficher tes onglets tu fait fichier-puis options-options avancés et tu regarde a option d'affichage de la feuille de calculs et coche la case correspondante

pascal

Re Grisan..

Ok je te remrcie l'ami..

RE bonjour kira

je te remets ton fichier ou j'ai enlever un max de .select dans les modules 1 et 2 mais je n'ai pas le temps de faire les autres modules

mais je n'ai pas essayer

https://www.cjoint.com/c/EAdpKYxCfJJ

moi j'utilise les 2 taux de tva et je fait des multipages

Pascal

Ok merci

bonsoir Kira

j'ai repris un peu la réduction du code sur le module2 tu réduire un peu plus encore en reunissant les 2 lignes que j'ai mises en

par exemple

Worksheets("DEMANDE_FACTURE").Range("D11:E11").Copy Worksheets("HISTORIQUE_DEMANDE_FACTURE").Range("B3")

autrement j'ai commencer sur le module7 mais je me trouve bloqué a des lignes que je ne sais pas a quelle feuille elle font référence

 Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[-6],"" "",RC[-5])"
    Range("A2:K2").Select
    Range("K2").Activate

après ca vas c'est le bordurage, mais ces ligne la il faudrait les mettre en commentaire pour appliquer le code et voir ce qui n'a pas été rempli

voila ce que je peux en dire pour ce soir, bon courage

bon j'abandonne car les réductions ne vont pas je suis bloqué a mon niveau , sans réduction ca fonctionne

Pascal

Je te remercie,

Ou tu es bloqué fait référence à ma feuille de numéro auto je pense mais merci quand même, je vais me penché dessus dés que j'aurais le temps car là j'essai de faire un tableau d'absence simple pour mon boulot et la je suis un peux bloqué sur le tableau de bord.

Je veux reporté le nombre absence et retard dans le tableau de bord expl feuille kira4

As tu une idée pour une formule plus rapide .

bonsoir

je ne m'y connais pas en formule un peu plus en vba

Pascal

edit de 07:30 le 4/1/15

j'ai réussi a réduire le code du module 7 mais il reste encore des choses a y faire mais voila il est fonctionnel, je pense que tu l'avais créer avec l'enregistreur de macros

Sub Insertion_Fournisseur()
'
' Insertion_Fournisseur Macro
'

'
    With Sheets("FOURNISSEUR")
        With .Rows("2:2")
        .Insert Shift:=xlDown
        .ClearFormats
        End With

     Worksheets("Tableau_Insertion").Range("G4").Copy Worksheets("FOURNISSEUR").Range("B2")

     Worksheets("Tableau_Insertion").Range("G5").Copy Worksheets("FOURNISSEUR").Range("C2")

     Worksheets("Tableau_Insertion").Range("G6").Copy Worksheets("FOURNISSEUR").Range("D2")

     Worksheets("Tableau_Insertion").Range("G7").Copy Worksheets("FOURNISSEUR").Range("E2")

     Worksheets("Tableau_Insertion").Range("G8").Copy Worksheets("FOURNISSEUR").Range("F2")

     Worksheets("Tableau_Insertion").Range("G9").Copy Worksheets("FOURNISSEUR").Range("G2")

     Worksheets("Tableau_Insertion").Range("G10").Copy
     Worksheets("FOURNISSEUR").Range("H2").NumberFormat = "0#"" ""##"" ""##"" ""##"" ""##"

     Worksheets("Tableau_Insertion").Range("G11").Copy
     Worksheets("FOURNISSEUR").Range("I2").NumberFormat = "0#"" ""##"" ""##"" ""##"" ""##"

     Worksheets("Tableau_Insertion").Range("G12").Copy Worksheets("FOURNISSEUR").Range("J2")

     Worksheets("Tableau_Insertion").Range("G13").Copy Worksheets("FOURNISSEUR").Range("K2")

    .Range("h23").FormulaR1C1 = "=CONCATENATE(RC[-6],"" "",RC[-5])"

   .Range("A2:K2").Borders.LineStyle = 1

    Columns("B:B").Select

   Worksheets("FOURNISSEUR").Sort.SortFields.Clear
   Worksheets("FOURNISSEUR").Sort.SortFields.Add Key:=Range( _
        "B2:B4"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With Worksheets("FOURNISSEUR").Sort
        .SetRange Range("A1:K4")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End With
    'Range("A2").Select
    With Sheets("Tableau_Insertion")
    .Range("G4:H13").ClearContents
    .Range("G4").FormulaR1C1 = "=NUMERO_AUTO!R[6]C[-1]"
    End With
    'Range("G5:H5").Select
    Sheets("NUMERO_AUTO").Range("E10") = Sheets("NUMERO_AUTO").Range("E10") + 1

End Sub

j'ai été obliger d'enlever le fusionnage des colonnes fournisseurs car le fusionnage ne fait pas bon ménage avec VBA

De plus ton classeur pourrai utiliser le classeur que je t'ai donné pour tes clients, et un autre pour les articles pour ne pas multiplier les userforms

bonsoir kira972j

je te retourne ton fichier où j'ai essayer de virer un maximum de sélect dans les modules et aussi enlever les fusionnages des cellules sur toutes les feuilles et modifier les codes en fonction mais je n'ai pas vraiment fait d'essai pour voir et je t'en laisse le soin

https://www.cjoint.com/c/EAesQBuiKuP

bonne soirée et bonne semaine

Pascal

Bonjour Grisan29

Je te remercie pour se que tu as corriger pour moi;

Je ferais des test se soir

Cordialement.

bonsoir Kira

j'ai revu un peu et corriger le code du module 7 insertion_fournisseur

Sub Insertion_Fournisseur()
  With Sheets("FOURNISSEUR")
    With .Rows(2)
      .Insert Shift:=xlDown
      .ClearFormats
    End With
    .[A2:J2] = Application.Transpose([G4:G13])
    .[H2:I2].NumberFormat = "0#"" ""##"" ""##"" ""##"" ""##"
    .[H23].FormulaR1C1 = "=CONCATENATE(RC[-6],"" "",RC[-5])"   '???
   .[A2:K2].Borders.LineStyle = 1
    .[B2:B65000].Sort .[B2], 1
    [G4:H13] = ""
    Range("G4").FormulaR1C1 = "=NUMERO_AUTO!R[6]C[-1]"
  End With
  Sheets("NUMERO_AUTO").Range("E10") = Sheets("NUMERO_AUTO").Range("E10") + 1
End Sub

16 lignes au lieu 180 lignes soit quasi 1/10ème

Pascal

Bonsoir Grisan

je te remercie, je teste cela de suite

Cordialement

Rechercher des sujets similaires à "validation usf"