aide VBA noctambule

meldja

XLDnaute Impliqué
Bonsoir,
Ici, la nuit tombe tôt, et vu qu'il y a un décalage d'une heure (je crois) et qu'on est du côté du soleil levant, il doit être plus tard en France.
Donc, pour les noctambules, voici mon pbme :

Tout fier de moi, tout seul comme un grand débutant VBA, j'ai conçu 2 macros (à l'aide de l'enregistreur... ) ;
la première pour afficher toutes les lignes (parce qu'au début, j'avais mis un filtre automatique dans une colonne),
la seconde pour trier les lignes correpondant à la cellule active.

Voici les deux codes qui marchent nickel :

Private Sub CommandButton2_Click()
Selection.AutoFilter Field:=1
Range("F1").Select
End Sub

Private Sub CommandButton3_Click()
Selection.AutoFilter Field:=1, Criteria1:=ActiveCell.Value
End Sub

Jusque là, tout va bien. Mon pbme est que j'aimerais un message d'erreur si la cellule active ne se situe pas dans la plage des noms à trier (E3:E50).
J'ai essayé :
If ActiveCell <> Range("E3:E50") Then

mais j'ai direct un message d'erreur quand je fais "Entrée".
J'en conclue que cette syntaxe n'est pas bonne, donc, si un nocturne a une idée, je le remercie d'avance.
 
G

Guest

Guest
Re : aide VBA noctambule

Bonjour MelDja de Sada

Voici de l'ouest où il fait encore jour,

Code:
If Union(ActiveCell, Range("E3:E50") ).address<>Range("E3:E50").Address then
 
MsgBox "Pas dans la bonne cellule, Allez vous coucher et revennez demain"
 
End if

union(range("E3:E50"),Activecell).Areas.Count>0

bonnes soirée
 
Dernière modification par un modérateur:

tototiti2008

XLDnaute Barbatruc
Re : aide VBA noctambule

Bonjour meldja,

en france, il fait encore un peu jour
essaye de remplacer :

If ActiveCell <> Range("E3:E50") Then

par

If Application.Intersect(ActiveCell, Range("E3:E50")) is nothing Then

à noter : si ta liste peut s'agrandir au-delà de la ligne 50, peut-être :

If Application.Intersect(ActiveCell, Range("E3").Currentregion) is nothing Then
 

pierrejean

XLDnaute Barbatruc
Re : aide VBA noctambule

bonjour meldja

A tester

Code:
Set isect = Application.Intersect(ActiveCell, Range("E3:E50"))
If isect Is Nothing Then
   MsgBox "Activecell hors de la plage"
Else
  Selection.AutoFilter Field:=1, Criteria1:=ActiveCell.Value
End If

encore a la bourre moi !!
Salut a tous
 

meldja

XLDnaute Impliqué
Re : aide VBA noctambule

Merci skoobi, tutotiti (qui ont le même code) et Hasco,
Rien à dire à part merci, c'est exactement ce que je voulais. Désolé de la lenteur de ma réponse mais je crois que je ne dois pas dépasser les 10 kb/s de connexion ; en plus de ça, y a ma fille de 2 ans qui vient de se réveiller et qui a besoin d'un bisou pour se rendormir.
Bonne soirée et encore merci
 

Discussions similaires

Statistiques des forums

Discussions
312 523
Messages
2 089 319
Membres
104 119
dernier inscrit
karbone57