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 :

Ouverture d'un UserForm sous conditions sur la feuille excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 39
    Par défaut Ouverture d'un UserForm sous conditions sur la feuille excel
    Bonjour,
    Je voudrais savoir s'il est possible qu'un userform s'ouvre sous condition sur la feuille excel.
    Je m'explique:
    Je veux que mon userform s'ouvre si pour deux ligne, les valeurs des colonnes A et B sont identiques.

    Merci de votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 73
    Par défaut
    oui c'est possible
    tu va dans les macro associé a ta feuille ensuite tu tape le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    et tu met ta condition ici sur les cellules ou colonnes 
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 39
    Par défaut
    Merci pour ton aide imaril.
    Cependant, je n'arrive pas à obtenir ce que je veux.
    Si j'ai bien compris, j'ai utilisé ton code dans le code de "ThisWorkBook"

    Voila ce que j'ai ecrit:

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    Dim i As Long
    Dim j As Long
    Dim lastrow As Long
     
    lastrow = ThisWorkbook.Worksheets(1).Range("A65536").End(xlUp).Row
        For i = 1 To lastrow
            For j = i To lastrow
        If Cells(1, i) = Cells(1, j) And Cells(2, i) = Cells(2, j) Then UserForm.Show
            Next j
        Next i
        Else
     
    End Sub

    Mais ça ne fonctionne pas lorsque je saisi les mêmes valeurs pour les colonnes A et B sur 2 lignes différentes rien ne se passe ...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 73
    Par défaut
    il faut le mettre ton code dans :feuille1("ton nom de feuille") au lieu de thisworkbook et ca devrai fonctionner

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 39
    Par défaut
    oui je me suis rendu compte qu'il fallait le mettre dans "feuil1" mais ça ne marche toujours pas...

    En fait avec ce code la fenetre apparait a chaque modification de la feuille excel...normal vu que pour i=1 et j=1 je compare la cellule avec elle même!

    J'ai donc modifié la 7eme ligne de code avec :
    for j=i+1 to lastrow

    Mais là plus rien ne se passe (en créant le doublon ) , je ne comprend pas...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 73
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long
    Dim j As Long
    Dim lastrow As Long
    If Target.Column = 1 Or Target.Column = 2 Then
        lastrow = ThisWorkbook.Worksheets(1).Range("A65536").End(xlUp).Row
        For i = 1 To lastrow
            For j = i To lastrow
                If Cells(1, i) = Cells(1, j) And Cells(2, i) = Cells(2, j) Then UserForm.Show
            Next j
        Next i
    End If
    End Sub
    ca devrai fonctionner

    mais je comprend pas vraiment pourquoi tu met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     For i = 1 To lastrow
            For j = i To lastrow
                If Cells(1, i) = Cells(1, j) And Cells(2, i) = Cells(2, j) Then UserForm.Show
            Next j
        Next i

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

Discussions similaires

  1. [XL-2010] insérer une image sous condition sur plusieurs lignes
    Par jesslab dans le forum Excel
    Réponses: 2
    Dernier message: 06/12/2013, 09h35
  2. [XL-2003] Afficher une courbe sous condition, sur un graphique
    Par rsuinux dans le forum Excel
    Réponses: 8
    Dernier message: 23/07/2013, 16h28
  3. [XL-2007] Image dans userform (sous condition)
    Par PierG dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/03/2013, 10h06
  4. [E-07] boucle copy paste sous condition sur ligne particuliere
    Par dec3003 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/03/2009, 17h36
  5. [E-03] Bloquer un UserForm sous condition.
    Par Blop le bricoleur dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/11/2008, 11h20

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