Condition

Résolu
Signaler
Messages postés
12
Date d'inscription
mardi 1 mars 2011
Statut
Membre
Dernière intervention
5 septembre 2011
-
Messages postés
12
Date d'inscription
mardi 1 mars 2011
Statut
Membre
Dernière intervention
5 septembre 2011
-
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

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
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
Messages postés
12
Date d'inscription
mardi 1 mars 2011
Statut
Membre
Dernière intervention
5 septembre 2011

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!!!
Messages postés
12
Date d'inscription
mardi 1 mars 2011
Statut
Membre
Dernière intervention
5 septembre 2011

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!!!
Messages postés
12
Date d'inscription
mardi 1 mars 2011
Statut
Membre
Dernière intervention
5 septembre 2011

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!!!
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
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
Messages postés
12
Date d'inscription
mardi 1 mars 2011
Statut
Membre
Dernière intervention
5 septembre 2011

Merci beaucoup pour tes explications (et ta patience! ).
Je vais l'utiliser dans mon code.

Encore merci.

Noobie en auto-apprentissage!!!