Bonjour le Forum,
Je suis sous EXCEL 2010 et windows7.
Grace au forum, j'ai réussi à avancer dans un projet perso mais je reste tout de même débutant.
J'ai maintenant 3 problèmes qui surviennent alors qu'ils fonctionnaient auparavant.
Je ne sais pas si j'ai le droit de poser plusieurs questions à la fois.
Si ce n'est pas acceptable merci de répondre à la première question, je verrai les 2 et 3 plus tard.
Le premier est :
A l'aide du USF lié au bouton "COMMANDE", je sélectionne un code et qui je rentre la quantité et la date.
Je dois ensuite cliquer sur le bouton en dessous "AJOUTER" pour qu'il vienne recopier les informations dans l'onglet "cf" du fichier.
Auparavant cette fonction marchait parfaitement et maintenant elle bloque sur (numLigneVide = ActiveSheet.Columns(1).Find("").Row) du code ci-dessous.
Auriez vous une solution, SVP?
Mon deuxième problème qui doit être plus simple est au niveau de la date qui est rentrée la TEXTBOX22,
L'ordre qui apparaît dans la cellule copiée est non pas Jour/Moi/Année mais Moi/Jour/Année et en format texte alors que je le voudrait en format Date.
Merci la aussi, malgré la lecture de nombreuses infos sur les forums j'ai besoin d'une aide, si possible.
Mon 3° problème est issu d'un code que Robert m'a fournit (merci à nouveau en passant).
Cependant il fonctionne très bien pour les sélections "expéditeur" et "fournisseur" mais ne fonctionne pas pour le "projet".
Je ne vois pas ou j'ai une erreur et je vous demande également un support.
Le reste de mon développement n'est pas fini et demande encore des mises aux points mais chaque chose en son temps.
Merci pour votre aide ou conseil.
A bientôt
CATA56
Je suis sous EXCEL 2010 et windows7.
Grace au forum, j'ai réussi à avancer dans un projet perso mais je reste tout de même débutant.
J'ai maintenant 3 problèmes qui surviennent alors qu'ils fonctionnaient auparavant.
Je ne sais pas si j'ai le droit de poser plusieurs questions à la fois.
Si ce n'est pas acceptable merci de répondre à la première question, je verrai les 2 et 3 plus tard.
Le premier est :
A l'aide du USF lié au bouton "COMMANDE", je sélectionne un code et qui je rentre la quantité et la date.
Je dois ensuite cliquer sur le bouton en dessous "AJOUTER" pour qu'il vienne recopier les informations dans l'onglet "cf" du fichier.
Auparavant cette fonction marchait parfaitement et maintenant elle bloque sur (numLigneVide = ActiveSheet.Columns(1).Find("").Row) du code ci-dessous.
Code:
Private Sub cmdajouterligne_Click()
Dim numLigneVide As Integer
'on active la feuille bd contact
worksheets("cf").Activate
'on trouve la dernière ligne vide de la feuille pour insertion des nouvelles données et on enregsitre le numéro de la variable
numLigneVide = ActiveSheet.Columns(1).Find("").Row ''' LE CODE SE BLOQUE ICI"""
'on verifie les champs obligatoires
If ComboBox1.Text = "" Then
MsgBox " Veuillez faire le choix d'un code article, SVP", vbCritical, "Champ manquant"
ComboBox1.SetFocus
ElseIf TextBox13.Text = "" Then
MsgBox " Veuillez indiquer un PU brut, SVP", vbCritical, "Champ manquant"
TextBox13.SetFocus
ElseIf TextBox15.Text = "" Then
MsgBox " Veuillez indiquer une quantité, SVP", vbCritical, "Champ manquant"
TextBox15.SetFocus
ElseIf TextBox22.Text = "" Then
MsgBox " Veuillez indiquer une date de livraison au format 01/01/01, SVP", vbCritical, "Champ manquant"
TextBox22.SetFocus
Auriez vous une solution, SVP?
Mon deuxième problème qui doit être plus simple est au niveau de la date qui est rentrée la TEXTBOX22,
Code:
Private Sub TextBox22_Change()
'aide à la saisie de la date
Dim Texte As String
Texte = TextBox22.Text
Select Case Len(Texte)
Case 2, 5
Texte = Texte & "/"
End Select
TextBox22.Text = Texte
End Sub
L'ordre qui apparaît dans la cellule copiée est non pas Jour/Moi/Année mais Moi/Jour/Année et en format texte alors que je le voudrait en format Date.
Merci la aussi, malgré la lecture de nombreuses infos sur les forums j'ai besoin d'une aide, si possible.
Mon 3° problème est issu d'un code que Robert m'a fournit (merci à nouveau en passant).
Cependant il fonctionne très bien pour les sélections "expéditeur" et "fournisseur" mais ne fonctionne pas pour le "projet".
Code:
Private Sub UserForm_initialize() 'à l'initialisation de l'UserForm 'dico pour la partie choix de projet
Set dico = CreateObject("Scripting.Dictionary") 'définit le dictionnaire dico
With Sheets("bdprojet") 'prend en compte l'onglet "bdprojet"
Set pl = .Range("b4:b" & .Cells(Application.Rows.Count, 2).End(xlUp).Row) 'définit la plage pl
For Each cel In pl 'boucle sur toutes les cellule éditées cel de la plage pl
dico(cel.Value) = "" 'alimente le dictionnaire dico
Next cel 'prochaine cellule cel de la boucle
End With 'fin de la prise en compte de l'onglet "bdcontact"
temp = dico.keys 'récupère les éléments du dictionnaire sans doublon
'Call tri(temp, LBound(temp, 1), UBound(temp, 1)) 'classement par ordre croissant
mdrprojet.List = temp 'alimente la combobox "Type de projet" par la liste sans doublon
Private Sub mdrprojet_Change() 'au changement dans la combobox "Type de projet"
Me.mdrphase.Clear 'vide la combobox "Phase"
Me.Listactivite.Clear 'vide la listbox "Activité"
Set dico = CreateObject("Scripting.Dictionary") 'définit le dictionnaire dico
For Each cel In pl 'boucle sur toutes les cellule éditées cel de la plage pl
'si la valeur de la cellule cel est égale à la valeur de la combobox "Nº de projet", alimente le dictionnaire dico
If CStr(cel.Value) = Me.mdrprojet.Value Then dico(cel.Offset(0, 1).Value) = ""
Next cel 'prochaine cellule cel de la boucle
temp = dico.keys 'récupère les éléments du dictionnaire sans doublon
'Call tri(temp, LBound(temp, 1), UBound(temp, 1)) 'classement par ordre croissant
mdrphase.List = temp 'alimente la combobox "Projet" par la liste sans doublon
End Sub
Private Sub mdrphase_Change() 'au changement dans la combobox "Phase"
Me.Listactivite.Clear 'vide la listbox "Activite"
If Me.mdrprojet.Value <> "" Then 'condition 1 : si la combobox "Nº de projet" n'est pas vide
For Each cel In pl 'boucle sur toutes les cellule éditées cel de la plage pl
'condition 2 : si le Nº de projet et la phase coïncident avec les comboboxes mdrprojet et mdrphase
If CStr(cel.Value) = Me.mdrprojet.Value And cel.Offset(0, 1).Value = Me.mdrphase Then
li = cel.Row 'définit la ligne li
With Me.Listactivite 'prend en compte la listbox "Activite"
.AddItem (cel.Offset(0, 3).Value) 'ajoute le nom à la listbox
.Column(1, .ListCount - 1) = li 'récupère le numéro de ligne
End With 'fin dela prise en compte le la listbox "Nom"
End If 'fin de la condition 2
Next cel 'prochaine cellule cel de la boucle
End If 'fin de la condition 1
End Sub
Private Sub Listactivite_Click() 'au clic dans la listbox "Activite"
With Me.Listactivite 'prend en compte la listbox "activite"
If .Value = "" Then Exit Sub 'si le clic est fait sur une valeur vide'sort de la procédure
li = Me.Listactivite.Column(1, .ListIndex) 'récupère le numéro de ligne li
End With 'fin de la prise en compte de la listbox "Nom"
End Sub
Je ne vois pas ou j'ai une erreur et je vous demande également un support.
Le reste de mon développement n'est pas fini et demande encore des mises aux points mais chaque chose en son temps.
Merci pour votre aide ou conseil.
A bientôt
CATA56