Pbm remplissage feuille excel via userform
Résolu
JustineK
-
JustineK -
JustineK -
Bonjour,
Voici ma macro sur VBA (Excel 2010)
Mon problème est que, lorsque que j'exécute la macro (je sélectionne une valeur dans la combobox de ma userform "ActiviteNewMEPComboBox" puis j'entre une nature de MEP), mais en cliquant sur OK seule la nature de MEP s'ajoute à la suite de la liste existante...
Je n'arrive à voir d'où vient le problème...
J'espère avoir été claire ...
Je vous remercie par avance de votre aide :-)
Bon après-midi !
Voici ma macro sur VBA (Excel 2010)
Sub AjoutMEP()
'Ajout de la mise en production dans la feuille Suivi des MEP
NewActiviteMEP = ""
NewDomainAct = ""
NewNomNatureMEP = ""
AjouterMEP.ActiviteNewMEPComboBox.Clear
AjouterMEP.AjoutNatureMEP.Value = ""
Dim i As Integer
'Remplir la combobox Activité dans la macro des MEP
i = 0
While Not Worksheets("Activités").Cells(6 + i, 1).Value = ""
AjouterMEP.ActiviteNewMEPComboBox.AddItem Worksheets("Activités").Cells(6 + i, 1).Value
i = i + 1
Wend
AjouterMEP.Show
'Ajout de l'activité dans la feuille Suivi des MEP
Ligne = 16
While Sheets("Suivi des MEP").Range("A" & Ligne).Value <> ""
Ligne = Ligne + 1
Wend
Sheets("Suivi des MEP").Range("A" & Ligne).Value = NewActiviteMEP
Sheets("Suivi des MEP").Range("B" & Ligne).Value = NewDomainAct
Sheets("Suivi des MEP").Range("C" & Ligne).Value = NewNomNatureMEP
With Sheets("Suivi des MEP").Range("A" & Ligne & ":" & "C" & Ligne)
.Cells.HorizontalAlignment = xlLeft
.Cells.Borders(xlDiagonalDown).LineStyle = xlNone
.Cells.Borders(xlDiagonalUp).LineStyle = xlNone
.Cells.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Cells.Borders(xlEdgeTop).LineStyle = xlContinuous
.Cells.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Cells.Borders(xlEdgeRight).LineStyle = xlContinuous
.Cells.Borders(xlInsideVertical).LineStyle = xlContinuous
.Cells.Borders(xlInsideHorizontal).LineStyle = xlContinuous
.Cells.Font.Name = "Arial"
.Cells.Font.Size = 10
End With
End Sub
Mon problème est que, lorsque que j'exécute la macro (je sélectionne une valeur dans la combobox de ma userform "ActiviteNewMEPComboBox" puis j'entre une nature de MEP), mais en cliquant sur OK seule la nature de MEP s'ajoute à la suite de la liste existante...
Je n'arrive à voir d'où vient le problème...
J'espère avoir été claire ...
Je vous remercie par avance de votre aide :-)
Bon après-midi !
A voir également:
- Pbm remplissage feuille excel via userform
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Word et excel gratuit - Guide
- Verrouiller cellule excel sans verrouiller la feuille - Guide
- Déplacer colonne excel - Guide
3 réponses
Bonjour,
Le problème ne semble pas être dans cette macro.
Ces 3 variables sont elles globales ?
NewActiviteMEP , NewDomainAct , NewNomNatureMEP
Ou sont-elles initialisées ?
Je suppose dans la validation au moment de la fermenture de l'UserForm mais nous ne pouvons pas le voir
A+
Le problème ne semble pas être dans cette macro.
Ces 3 variables sont elles globales ?
NewActiviteMEP , NewDomainAct , NewNomNatureMEP
Ou sont-elles initialisées ?
Je suppose dans la validation au moment de la fermenture de l'UserForm mais nous ne pouvons pas le voir
A+
Re bonjour,
Je viens de voir sur une autre discussion cette macro de validation :
Si c'est bien celle la qui initialise la variable NewActiviteMEP alors il y a une ligne de cette macro qui est inutile et contradictoire c'est celle là :
ajouterMEP.ActiviteNewMEPComboBox.Value = NewActiviteMEP
Je pense qu'il faut la supprimer car elle remet la combo à ""
A tester
Cordialement,
Je viens de voir sur une autre discussion cette macro de validation :
Private Sub AjoutMEP_Click()
If (ajouterMEP.ActiviteNewMEPComboBox.Value <> "") And (ajouterMEP.AjoutNatureMEP.Value <> "") Then
ajouterMEP.ActiviteNewMEPComboBox.Value = NewActiviteMEP
Ligne = 3 '-- première ligne de la liste des activités
While Sheets("Activités").Range("A" & Ligne).Value <> ajouterMEP.ActiviteNewMEPComboBox.Value
Ligne = Ligne + 1
Wend
NewActiviteMEP = ajouterMEP.ActiviteNewMEPComboBox.Value
NewDomainAct = Sheets("Activités").Range("C" & Ligne).Value
NewNomNatureMEP = ajouterMEP.AjoutNatureMEP.Value
ajouterMEP.Hide
Else
reponse = MsgBox("Veuillez renseigner une activité.", vbOKOnly, "Valeur manquante")
End If
End Sub
Si c'est bien celle la qui initialise la variable NewActiviteMEP alors il y a une ligne de cette macro qui est inutile et contradictoire c'est celle là :
ajouterMEP.ActiviteNewMEPComboBox.Value = NewActiviteMEP
Je pense qu'il faut la supprimer car elle remet la combo à ""
A tester
Cordialement,