OVH Cloud OVH Cloud

enable events

11 réponses
Avatar
Misange
Bonjour
j'ai deux petits soucis:

j'ai un formulaire contenant une combo + deux ou trois bricoles (textbox
liés à la valeur du combo). Quand on sélectionne un élément,ca déclenche :

Private Sub CboNom_Change()
If CboNom.ListIndex <> -1 Then
n = CboNom.Value
With Sheets("bdd").Range("nomsbdd")
Set c = .Find(n, LookIn:=xlValues)
If Not c Is Nothing Then
pos = c.Row
'blablabla
end if
End With
'blablbla
End if
End Sub

le userform contient un bouton validé qui quand il est cliqué lance ceci:

Private Sub CmdValider_Click()

Application.EnableEvents = False 'pour empecher la macro cbonom_change
'de se déclencher, du moins je le pensais...
Sheets("bdd").Range(pos & ":" & pos).Delete Shift:=xlUp

'remise à 0 des boites de saisie
CboNom.ListIndex = -1
End Sub

Donc :
1)quand on supprime la ligne, l'événement cbonom_change se déclenche
quand même et provoque bien sur une erreur puisque le nom a disparu...
Où faut-il donc placer cet enableevents=false pour que ça marche ?

2)le contenu de la liste est défini de façon dynamique avec decaler.
nomsbdd=DECALER(bdd!$A$2;;;NBVAL(bdd!$A:$A)-1)

pb : si je supprime une ligne quelconque ça fonctionne très bien
en revanche si je supprime la ligne 2, du coup nomsbdd n'est plus défini !!
Mais comment faire je vous le demande un peu ?

un peu d'aide serait bienvenu
--
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

1 réponse

1 2
Avatar
GD
Misange wrote:
../..
(aucun moyen de supprimer la ligne 1 dans ce que je fais)
../..
je veux bien te croire ...
;o)))
mais rappelle toi quand même ce qu'a dit Murphy :
S'il existe deux ou plusieurs manières de faire quelque chose
et que l'une de ces manières est susceptible de se solder par une
catastrophe,
on peut être certain que quelqu'un se débrouillera pour la choisir.
;o)))

il faut s'affranchir de la référence absolue à $a$1

NB : http://www.courtois.cc/murphy/murphy.html
évidement si tu supprimes aussi la ligne 1 : .... #REF !!!!!
ÞCALER(INDIRECT(ADRESSE(2;1));;;NBVAL(Bdd!$A:$A)-1)




1 2