Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

aide VBA noctambule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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:
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

S
Réponses
14
Affichages
1 K
S
L
  • Question Question
Réponses
0
Affichages
1 K
lycan54
L
B
  • Question Question
Réponses
3
Affichages
1 K
C
Réponses
1
Affichages
1 K
C
C
Réponses
4
Affichages
2 K
chacal33
C
T
  • Question Question
Réponses
2
Affichages
1 K
Trinitybarb
T
N
Réponses
23
Affichages
5 K
J
Réponses
1
Affichages
1 K
H
Réponses
2
Affichages
7 K
H
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…