Saisie automatique et doublon

, ça fonctionne merci

Peut tu me dire si l'on peut appliquer cette formule pour purger ma feuille gestion client

Private Sub Purge_Cmde_Click()

With Sheets("Bon de commande")

Sheets("Bon de commande").Rows("4:" & .[A65536].End(xlUp).Row + 1).Delete shift:=xlUp

End With

End Sub

Bien sur en créant un bouton je suppose

je viens de trouver ça sur le fofo

Re: Bon de commande type e-commerce

de vba-new » 19 Jan 2010, 18:22

Bien entendu je ne sais pas faire mais si tu peut me guider, comme sur le précédent post j'évolus

Amitiés

Leaner

Re leaner,

On pouvait simplifier le code comme ceci :

Private Sub Purge_Cmde_Click()
With Sheets("Bon de commande")
.Rows("4:" & .[A65536].End(xlUp).Row + 1).Delete shift:=xlUp
End With
End Sub

Etant donné que j'avais mis le With Sheets("Bon de commande"), le Sheets("Bon de commande") de Sheets("Bon de commande").Rows("4:" & .[A65536].End(xlUp).Row + 1).Delete shift:=xlUp ne sert strictement à rien

Dans ton cas, il faut adapter un petit peu

Déjà, la feuille sur laquelle tu veux purger les données ne s'appelle pas "Bon de commande" mais "Gestion client". Ensuite, le code que tu as posté supprime à partir de la ligne 4 ! Or dans ton fichier, la ligne 4 contient les entêtes !!

Ensuite, ici, vaut peut-être mieux ne pas utiliser la méthode Delete car tu as des mises en forme.

Ensuite, tu avais un private sub car c'était le code d'un bouton d'un userform.

Voici le code adapté à mettre dans un module standard :

Sub Purge()
    With Sheets("Gestion client")
        'le .[A65536].End(xlUp).Row + 1 te permet de trouver la dernière ligne non vide +1 de la colonne A
        .Rows("5:" & .[A65536].End(xlUp).Row + 1).ClearContents
    End With
End Sub

Avec la méthode Delete, voici ce que ça donne :

Sub Purge2()
    With Sheets("Gestion client")
        'le .[A65536].End(xlUp).Row + 1 te permet de trouver la dernière ligne non vide +1 de la colonne A
        .Rows("5:" & .[A65536].End(xlUp).Row + 1).Delete shift:=xlUp
    End With
End Sub

bonjour vba-new

peut tu me dire au sujet du code

Doit je créer un bouton ou comment le fonctionnement ce fait il

je n'ai jamais pratiqué le VBA

ou

peut tu m'expliquer comment je doit faire

Si c'est trop lourd à expliquer me l'incrémenter et j'étudierai par la suite

Je te remercie encore

Amitiés

Leaner

Bonjour leaner,

Pour créer un module, lorsque tu es dans ton fichier excel, appuie sur Alt+F11 pour entrer dans l'éditeur VBA.

Dans la fenêtre en haut à gauche, fais un clic droit puis Insertion / Module.

Ensuite colle un des codes que j'ai posté (Purge ou Purge2 ou les 2 si tu veux !).

Reviens ensuite dans la fenêtre excel puis crée un bouton. Affecte ensuite à ce bouton la macro Purge ou Purge2.

Voilà, si tu as des difficultés, reviens.

Bonsoir vba-new,

j'ai créer le module, j'ai collé le code "purge"

j'ai créer le bouton et ouvert la macro coller "purge"

Quand j'ai voulu essayer c'est pas bon donc boulette

un autre indice

Je sus vraiment pas doué

peut tu voir ou est la boulette et j'essaierai de corriger

Amitiés

Leaner

Re leaner,

C'est presque ça. Vu que tu as créé une forme en guise de bouton, pour lui affecter une macro, tu fais un clic droit sur le bord du cadre de ton rectangle et tu fais "Affecter une macro". Ensuite tu sélectionnes la macro Purge.

Normalement, pour créer un bouton standard, tu vas dans l'ongelt Développeur et tu fais Insérer...

Si tu n'as pas l'ongelt Développeur, clique sur le Bouton office puis va dans les Options Excel puis dans Standard, coche "Afficher l'onglet Développeur dans le ruban".

Bonsoir vba-new

ça fonctionne pour m'avoir aidé à comprendre

Comment créer un bouton et comment lui attribuer une macro là au moins

j'ai appris

Dit moi aurai tu un code pour que mes lignes alterne en couleurs

Ex: 5, blanche/ 6, violet/ 7, blanche/ 8, violet/ ect... jusqu'à l'infini

ou alors doit je continuer à le faire à la mimine comme j'ai déjà commencé

Amitiés

Leaner

Bonsoir Leaner, vba-new

je me permet de glisser un petit mot

ayant suivi ce post avec interet et curiosité, je me suis amusé a faire évoluer l'UF en vu des ses fonctionnalités

Si vous êtes d'accord tous les deux , je le posterais

je n'ai pas tout à fait terminé mais je post étant bientôt clos, je me manifeste

en attente des vos accords ou non

Cordialement

Bob

Bonsoir, BOB71AU

Je suis hyper reconnaissant envers vba-new car il m'as permis

d'avancer tout en étudiant les infos qu'il m'as gentiment donné

Alors que moi ne connaissant pas le VBA j'avais de grosses difficultés

Mais tu sais pour moi toutes les idées sont bonnes à étudier, mais je pense que l'avis de vba-new

est important vu sont implication à mon projet

Donc je me rangerai à l'avis de vba-new

Quoi qu'il en soit de l'intérêt que tu porte à notre post Bob

Amitiés

Leaner

Salut les 2,

Je ne vois aucune raison de ne pas mettre ton grain de sel Bob ! Plus on est de fous plu on rit !!

D'autant plus qu'il me semble que tu gères très bien les UF !

Donc fais comme chez toi ! T'as le feu vert !

Rebonsoir Leaner,vba-new

merci de m'autoriser à intervenir sur le sujet

a vous de voir si quelque chose de ce fichier vous serait utile

Cordialement

Bob

Re,

J'me disais aussi ! J'avais donc pas tort ! Il me semblait bien que tu gérais pas trop mal les UF !

Pour ma part, il n'y a pas grand chose qui pourrait m'être utile, à première vue.

Mais nul doute que notre ami leaner y verra quelque intérêt dans ton fichier Bob !

Bravo pour le travail fourni, d'autant plus que tu n'es pas intervenu dans ce post ! Alors que tu n'aurais pas dû hésiter !

Si je peux me permettre, tu peux peut-être optimiser certaines parties de ton code (lorsque tu vides les textbox par exemple). Comme tu vides TOUS les textbox de l'UF, tu peux utiliser ce code :

    For Each Ctrl In Me.Controls
        If TypeOf Ctrl Is MSForms.TextBox Then Ctrl.Object.Value = ""
    Next Ctrl

plutôt que ça :

    TextBox1.Value = ""
    TextBox2.Value = ""
    TextBox3.Value = ""
    TextBox4.Value = ""
    TextBox5.Value = ""
    TextBox6.Value = ""
    TextBox7.Value = ""
    TextBox8.Value = ""
    TextBox10.Value = ""
    TextBox11.Value = ""
    TextBox12.Value = ""
    TextBox13.Value = ""
    TextBox14.Value = ""
    TextBox15.Value = ""
    TextBox16.Value = ""

Ça fait un peu plus propre

Bonsoir vba-new

je te remercie pour tes remarques

c'est comme cela que l'on avance et que l'on s'instruit

attendons maintenant les remarques de leaner

Cordialement

Bob

Ou remplacer ça :

        Label20.Caption = .Range("C2")
        Label21.Caption = .Range("D2")
        Label22.Caption = .Range("E2")
        Label23.Caption = .Range("F2")
        Label24.Caption = .Range("G2")
        Label25.Caption = .Range("H2")
        Label26.Caption = .Range("I2")
        Label27.Caption = .Range("J2")
        Label28.Caption = .Range("K2")
        Label29.Caption = .Range("L2")
        CheckBox1.Caption = .Range("C3") & " €"
        CheckBox2.Caption = .Range("D3") & " €"
        CheckBox3.Caption = .Range("E3") & " €"
        CheckBox4.Caption = .Range("F3") & " €"
        CheckBox5.Caption = .Range("G3") & " €"
        CheckBox6.Caption = .Range("H3") & " €"
        CheckBox7.Caption = .Range("I3") & " €"
        CheckBox8.Caption = .Range("J3") & " €"
        CheckBox9.Caption = .Range("K3") & " €"

par ça :

        For I = 20 To 29
            Me.Controls("Label" & I) = .Cells(2, I - 17)
        Next I
        For I = 1 To 9
            Me.Controls("CheckBox" & I) = .Cells(3, I + 2) & " €"
        Next I

Dans ton userform_initialize.

Après, pas grand chose à redire.

Edit : c'est aussi comme ça que j'aime avancer

Messieurs, bien le bonjour de GIRONDE et sincèrement respect 8)

Houahou là deux pro rien que pour moi je n'aurai pu rêver mieux

c'est vraiment super sympa de votre part à tous deux, car tous cela vas me simplifier la vie

je fait tous ça à la mimine pour le moment

Afin de finaliser que puis je faire à ça

Feuille du mois de juillet:

j'ai fait des essais deux fois sur un nouveau client "SWAYNE Patrick", les prise en compte des libelés n'y paraisse pas

et deux sur un client connu "Durand Philippe" et le client entre en création dans l' UF

Que puis je faire pour y remédier

Feuille Gestion Client:

Y aurait il moyen d'avoir la date de dernière visite en "colonne B"

Car j'ai remarqué que c'est le cas sur la "colonne Q" des commentaires

Que puis je faire pour y remédier

Amitiés

Leaner

Bonjour leaner,vba-new

je pense que ce message m'es destiné

j'ai fait des essais deux fois sur un nouveau client "SWAYNE Patrick", les prise en compte des libelés n'y paraisse pas

effectivement cette partie n'est pas finalisée

et deux sur un client connu "Durand Philippe" et le client entre en création dans l' UF

en fait, la saisie depuis l'UF rentre les noms en masjuscule et les prénoms avec la première lettre en majuscule et le reste en minuscule

dans les données bidons du fichier, je n'ai pas tous resaisie sous cette forme voila pourquoi il recréer un nouveau client

Y aurait il moyen d'avoir la date de dernière visite en "colonne B"

Car j'ai remarqué que c'est le cas sur la "colonne Q" des commentaires

pour moi, il serait peut être plus judicieux de rajouter une colonne a la fin du tableau

par contre, je me pose une question depuis le début

dans la gestion clients, il ne peut y avoir qu'un seul client du même nom,prénom

cela implique donc que chaque client n'a quel seul animal avec un toiletteur attitré

Cordialement

Bob

Bob et vba-new

désoler Bob j'ai cru que c'était des bug

Comme tu as pu le constater je suis nul de chez nul en VBA

et grâce à vous j'étudie et essai de comprendre les codes

mais dur dur

il ne peut y avoir qu'un seul client du même nom,prénom

cela implique donc que chaque client n'a quel seul animal

avec un toiletteur attitré

Ben pour le moment c'est le cas, mais tu fait bien de soulever le probable

futur problème

Y as t'il une solution à ça

pour moi, il serait peut être plus judicieux de rajouter une colonne a la fin du tableau

Ok pour créer une colonne en supplément, je vais essayer de le faire de mon coté voir si j'y arrive rdi2:

Amitiés

Leaner

Bonjour leaner,vba-new

fichier avec colonne supplémentaire et validation des commentaires sur les mois

vba-new, peux tu stp, regarder le code du bouton valid des achats afin d'améliorer le code des checkbox si possible

( variable Commentaire)

merci

Cordialement

Bob

Bonsoir,

Juste pour le bouton "Valider" :

Private Sub CommandButton6_Click()
Dim Commentaire As String
If Not IsNumeric(TextBox27) Or TextBox27 = 0 Then MsgBox "La Commande est vide", vbOKOnly + vbCritical, "ENREGISTREMENT REFUSE": Exit Sub
Dim F As String
Dim Z As Byte
F = Application.Proper(Format(Me.DTPicker1, "mmmm"))
For Z = 1 To 9
    If Me.Controls("CheckBox" & Z) Then Commentaire = Commentaire & " + " & Me.Controls("Label" & Z + 19).Caption
Next Z
If TextBox26.Value <> "" Then Commentaire = Commentaire & " + " & "Article"
If TextBox28.Value <> "" Then Commentaire = Commentaire & " + " & "Remise " & TextBox28.Value & " %"
Commentaire = Right(Commentaire, Len(Commentaire) - 3)
....
....

Maintenant, la gestion des checkboxs pourrait se faire via un module de classe, mais ceci est une autre histoire...

Bonne soirée

et cousinhub

mais ce code je le mets à la place du quel

J'apprend en même temps que l'on m'aide

J'ai bien trouvé sont emplacement mais je ne sais pas quoi supprimer

La totalité ou juste une partie

Merci encore

Amitiés

Leaner

Rechercher des sujets similaires à "saisie automatique doublon"