Saisie automatique et doublon
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 SubEtant 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 SubAvec 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 Subbonjour
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
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".
ça fonctionne
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
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
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 Ctrlplutô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 IDans 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
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
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
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
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