Condition

Résolu
VBNoob13 Messages postés 12 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 5 septembre 2011 - 25 août 2011 à 09:49
VBNoob13 Messages postés 12 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 5 septembre 2011 - 26 août 2011 à 10:17
Bonjour à tous,

Je souhaiterai créer une condition pour savoir si la cellule active fait partie d'une plage de cellule définie.

Par exemple, je surveille la plage de A5 à G9, si l'utilisateur sélectionne une cellule dans cette plage, cela active ma condition pour exécuter, par exemple, un copier-coller.
Je travaille avec du VBA excel.

J'espère avoir été claire. Merci d'avance de votre aide.

VBNoob13

Noobie en auto-apprentissage!!!

7 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 220
25 août 2011 à 11:09
Regarde (exemple) :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Not Intersect(Target, Range("B3:G10")) Is Nothing Then MsgBox "dedans"
End Sub

Sélectionne maintenant la cellule de ton choix dans la plage B3:G10 et observe !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 220
25 août 2011 à 10:03
Bonjour,
VBA/Excel n'est pas VB6 ! Fais attention au choix de la section dans laquelle tu poses une question, STP.

Bon.
Ouvre ton aide en ligne sur le mot Intersect
Utilise-le dans l'évènement SelectionChange
reviens si encore difficultés


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
VBNoob13 Messages postés 12 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 5 septembre 2011
25 août 2011 à 10:24
OK Merci,

Je vais voir ça de suite.

Et désolée de m'être trompée de sujet pour mon message .
Promis je le ferais plus .

VBNoob13

Noobie en auto-apprentissage!!!
0
VBNoob13 Messages postés 12 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 5 septembre 2011
25 août 2011 à 11:03
Je n'ai pas réussi à exploiter les pistes que tu m'a donné, ucfoutu.

Mais j'ai réussi à résoudre mon problème de la manière suivante:
LigneActive = ActiveCell.Row
ColonneActive = ActiveCell.Column

If LigneActive >= 5 And LigneActive <= 9 Then
    If ColonneActive >= 1 And ColonneActive <= 7 Then
        'Ouverture du l'onglet
        Application.Sheets("Pdg 2011").Activate
        'On copie les horaires par défaut définis sur la PdG
        Range("H20:I21").Copy
        'On active l'onglet dans lequel on veut coller ces cellules
        Application.Sheets(NomOnglet).Activate
        'On précise "à partir de où" on veut coller
        Range("D5").Select
        'On colle les cellules copiées
        ActiveSheet.Paste
    End If
End If


Il ne me reste plus qu'à la rendre dynamique!

Encore merci de ton aide


Noobie en auto-apprentissage!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
VBNoob13 Messages postés 12 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 5 septembre 2011
25 août 2011 à 13:27
Re!

Désolée mais je ne sais pas comment exécuter ton exemple , je ne peux pas non plus l'attribuer à un objet pour le lancer.
Ça vient peut être du fait que ce soit un Private Sub, je n'en ai jamais utilisé jusqu'à présent...

Enfin, je vais continuer à chercher avec ta solution. En attendant, voici ce que j'ai fait pour dynamiser mon code précédent:

Sub HeuresParDefaut()
'Appel de la Fonction permettant d'obtenir le numéro de la semaine en cours
'Fonction récupérée sur http://www.vbfrance.com/codes/CALCUL-AUTOMATIQUE-SEMAINE_40465.aspx
    NumSemaine = WeekNumber()
    NomOnglet = "Sem" & NumSemaine

j = 5
k = j + 4
For FinTest = 1 To 9
LigneActive = ActiveCell.Row
ColonneActive = ActiveCell.Column
    If LigneActive >= j And LigneActive <= k Then
        If ColonneActive >= 1 And ColonneActive <= 7 Then
            'Ouverture du l'onglet
            Application.Sheets("Pdg 2011").Activate
            'On copie les horaires par défaut définis sur la PdG
            Range("H20:I21").Copy
            'On active l'onglet dans lequel on veut coller ces cellules
            Application.Sheets(NomOnglet).Activate
            'On précise "à partir de où" on veut coller
            Range("D" & j).Select
            'On colle les cellules copiées
            ActiveSheet.Paste
        End If
    End If
FinTest = FinTest + 1
j = j + 6
k = j + 4
Next
End Sub


A plus!

Noobie en auto-apprentissage!!!
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 220
25 août 2011 à 14:10
Ben ....
1) passe en mode développeur
2) passe en mode editeur VB
3) dans la fenêtre projet : clique sur la feuille de calcul concernée
4) dans la colonne de gauche : déroule et clique sur l'objet worksheet
5)choisis l'évènement selectionChange ===>> te reste plus qu' y essayer le code que je t"'ai montré

A1llez : jette-toi vite à l'eau (c'est bon, en été).

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
VBNoob13 Messages postés 12 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 5 septembre 2011
26 août 2011 à 10:17
Merci beaucoup pour tes explications (et ta patience! ).
Je vais l'utiliser dans mon code.

Encore merci.

Noobie en auto-apprentissage!!!
0
Rejoignez-nous