IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comment faut il faire pour définir 2 plages de cellules ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 30
    Points : 22
    Points
    22
    Par défaut Comment faut il faire pour définir 2 plages de cellules ?
    Salut,

    Pour faire suite à ce post, comment faut il faire pour définir 2 plages de cellules ?

    J'ai essayé cela, mais ça ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set plage = .Worksheets("Feuil2").Range("A:A")&.Worksheets("Feuil3").Range("C:C")
    Qqn aurait-il une solution ?

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Salut, voir l'aide de la méthode Union

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    J'ai l'impression que la méthode Union ne fonctionne pas pour deux feuilles différentes, et de tailles différentes... Pouvez-vous confirmer ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        Dim val As Variant
        Dim plage1, plage2, plage3 As Range
     
     
        With ThisWorkbook
            val = .Worksheets("Feuil1").Range("E6").Value
            Set plage1 = .Worksheets("Feuil2").Range("A:A")
    Set plage2=.Worksheets("Feuil3").Range("D:D")
    Set plage3=union(plage1, plage2)
     
     
        End With
     
        If plage3.Find(What:=val, LookIn:=xlValues, lookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) Is Nothing Then
            MsgBox "Erreur ", vbOKOnly + vbExclamation, "Erreur de saisie"
            Range("E6").Select
            Selection.ClearContents
            Range("E6").Select
        End If

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Ce n'est pas un problème de taille mais bien de feuilles différentes …

    Donc il faut scinder la recherche par plage, si la première ne trouve rien, déclencher alors la deuxième …

    Il serait bien aussi de conditionner l'évènement par rapport à l'adresse de la cellule modifiée (Target.Address) et celle vérifiée, E6 …

    Car sinon à chaque modification de n'importe quelle autre cellule la recherche s'effectue pour rien !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    Merci Marc-L, problème résolu avec ce code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        Dim val As Variant
        Dim plage As Range
        Dim plage2 As Range
     
        With ThisWorkbook
            val = .Worksheets("formulaire saisie").Range("E6").Value
            Set plage = .Worksheets("Feuil2").Range("A:A")
            Set plage2 = .Worksheets("Feuil3").Range("D:D")
        End With
     
        If plage.Find(What:=val, LookIn:=xlValues, lookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) Is Nothing Then
     
            If plage2.Find(What:=val, LookIn:=xlValues, lookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) Is Nothing Then
            MsgBox "Erreur. ", vbOKOnly + vbExclamation, "Erreur de saisie"
            Range("E6").Select
            Selection.ClearContents
            Range("E6").Select
            End If
     
        End If
     
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/06/2009, 13h44
  2. Réponses: 1
    Dernier message: 14/01/2009, 13h53
  3. Comment utiliser Range(cells(... pour indiquer une plage de cellules
    Par gerald57 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/05/2008, 10h35
  4. Comment puis je faire pour que'une page soir rechargees....
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/12/2005, 10h46
  5. [juridique] Que faut-il faire pour etre mandataire?
    Par Death83 dans le forum Droit
    Réponses: 5
    Dernier message: 24/11/2005, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo