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 :

USERFORM probleme programmation [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Août 2014
    Messages : 46
    Par défaut
    Pièce jointe 201548

    Bonjour, Voila je rencontre plusieurs souci
    je viens vers vous pour avoir de l'aide si possible

    j'ai noté sur la photo pour être plus clair.

    J'aimerais que quand je sélection la feuille dans Bâtiment ( 1 )
    dans ( 2 ) ma liste Colonne A, (3) B , (4) C , (5) I , (6) D , (7) E , (8) F , (9) G ,
    (10) J , (11) K...

    le problème premier c'est que j'arrive pas a avoir dans 2 ComboBox2 la colonne A après avoir choisi le bâtiment (1) ComboBox1.

    du coups je ne peut avancé dans mon projet

    merci d'avance pour l'aide que vous m'apporter

    James17

    je mais mon fichier ce serra plus facile je pense

    Pièce jointe 201572

  2. #2
    Membre chevronné
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Par défaut
    bonsoir

    En reprenant votre code , je pense que vous voulez faire la lecture des lignes en fonction des feuilles et des lignes.

    Il faut je pense déjà declarer la variable m Globale, ensuite dans l'initialisation remplir le rowsource du combobox1, puis le rowsource du combobox2 dans la procedure combobox1_change, jai vu aussi que vous appeliez le "userform" par "userform au lieu de menu.

    En faisant cela vous faites la lecture des lignes donc les autres champs doivent être des textboxs ce que je vous propose.

    Voilà mon 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    Dim m As String 'Déclarer m globale
     
    Private Sub ComboBox2_Change()
       ActiveSheet.Cells(ComboBox2.ListIndex + 6, 2).Select
       tniveau.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 2).Text
       tmodels.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 3).Text
       tcapacite.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 9).Text
       '...........
       ' faire les autres affichages de la même façon
     
    End Sub
     
    Private Sub CommandButton2_Click()
      Unload Menu
    End Sub
     
     
    Private Sub ListBox1_Click()
     
    End Sub
     
    Private Sub ListBox2_Click()
        With ListBox1
            .TopIndex = ListBox2.TopIndex
            .ListIndex = ListBox2.ListIndex
        End With
    End Sub
     
    Private Sub CommandButton1_Click()
    ThisWorkbook.Save
    Application.Quit
    End Sub
     
    Private Sub UserForm_Initialize()
     
     
      Application.EnableEvents = False
      For Each S In ActiveWorkbook.Sheets
        Me.ComboBox1.AddItem S.Name
      Next S
      Me.ComboBox1.ListIndex = 0 'pointe sur la 1ère feuille
      m = ComboBox1.List(1) 'm contient le nom de la 1ère feuille
     
     
      Application.EnableEvents = True
    End Sub
     
    Private Sub ComboBox1_Change()
      Dim source As Range, c As Range
     
      m = Me.ComboBox1.Value    'valeur pointée du combobox
      Sheets(m).Select
     
      Set source = ActiveSheet.Range(Cells(6, 1), Cells(6, 1).End(xlDown)) 'recherche de la zone fonction des feuilles
      ComboBox2.RowSource = source.Address
      ComboBox2.ListIndex = 0
     
    End Sub
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then Cancel = True
    End Sub
    Salutations les meilleures

    le fichier :EXTINCTEURS2.xls

    geogeo

  3. #3
    Membre averti
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Août 2014
    Messages : 46
    Par défaut re
    Un merci énorme a toi geogeo70

    J'aimerai que cette list soit en date, c'est possible?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datejour.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 10).Text
    merci

  4. #4
    Membre chevronné
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Par défaut
    bonsoir,

    Mon essai donne bien la date dans le même format... avez-vous changé la listbox en textbox ? je n'avais pas changé dans le fichier puisque je n'avais pas été jusqu'au bout des affectations.

    le code suivant fonctionne chez moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub ComboBox2_Change()
       tniveau.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 2).Text
       tmodels.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 3).Text
       tcapacite.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 9).Text
       tdate.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 10).Text
       tnom.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 11).Text
     
    End Sub
    Essayez ça devrait fonctionner (j'ai apppelé tdate et tnom les 2 "textbox")

    bonne nuit

    geogeo

  5. #5
    Membre averti
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Août 2014
    Messages : 46
    Par défaut
    Bonjour geogeo70,

    en faite je voudrais que quand je tape la date dans mon userform, elle ce mais sur la bonne cellule.

    pareil pour Pesé, Commentaire et ma liste déroulante des Noms
    si c'est possible ( pas faire attention au Commantaire ) petite faute de frappe dans l'userform

    Sinon impeccable pour le reste

    je te remet le fichier car depuis j ai bien avancé dessus

    encore merci de l'aide

    Pièce jointe 201826

    Pour les nom des agent je les ai mis dans colonne N de chaque feuille

    mais je me demande si ces pas mieux de faire un listbox

    cdlt

  6. #6
    Membre chevronné
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Par défaut
    Bonsoir

    Je te joins mes modifications du code, une galère pour traiter les dates et nombres, mais cela fonctionne maintenant. il faudra penser à protéger les zones non editables. A vous de faire maintenant :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    Public m As String 'nom des feuilles
    Private Sub ccomm_Change()
        ActiveSheet.Cells(ComboBox2.ListIndex + 6, 12).Value = ccomm.Value
    End Sub
     
    Private Sub CommandButton1_Click()
    ThisWorkbook.Save
    End Sub
    Private Sub datejour_Change()
       Dim x As Integer
       'traitement des dates (anglaise en français)
       x = InStr(1, datejour.Value, "/")
       If x <> 0 Then
            x = InStr(x + 2, datejour.Value, "/")
            If x <> 0 And Len(datejour.Value) > x Then
                'reconstitution date française
                ActiveSheet.Cells(ComboBox2.ListIndex + 6, 10) = Month(datejour.Value) & "/" & Day(datejour.Value) & "/" & Year(datejour.Value)
            Else
                ActiveSheet.Cells(ComboBox2.ListIndex + 6, 10) = datejour.Value 'en attendant la suite
            End If
       End If
    End Sub
    Private Sub nnomm_Change()
        ActiveSheet.Cells(ComboBox2.ListIndex + 6, 11).Value = nnomm.Value
     
    End Sub
     
    Private Sub Tpese_Change()
        Dim st As String
        Dim bool As Boolean
     
        Application.EnableEvents = False
     
        'traitement des nombres
        If Tpese.Text <> "" Then
            'si on utilise en saisie le point pour la virgule
            If InStr(1, Tpese.Text, ".") <> 0 Then Tpese.Text = Replace(Tpese.Text, ".", ",")
            'reconstituer le nombre version anglaise
            If InStr(1, Tpese.Text, ",") <> 0 Then
                st = Tpese.Text
                st = Replace(st, ",", ".")
            Else
                st = Tpese.Text
            End If
            If IsNumeric(Tpese.Value) Then
                ActiveSheet.Cells(ComboBox2.ListIndex + 6, 7) = st
            Else
                'si on ne tape pas chiffre ou virgule
                ActiveSheet.Cells(ComboBox2.ListIndex + 6, 7) = ""
                Tpese.Text = ""
                bool = MsgBox("Vous devez saisir un nombre", vbOKOnly, "Attention !")
            End If
        End If
     
        Application.EnableEvents = True
    End Sub
     
    Private Sub UserForm_Initialize()
      Application.EnableEvents = False
      For Each S In ActiveWorkbook.Sheets
        Me.ComboBox1.AddItem S.Name
      Next S
      Me.ComboBox1.ListIndex = 0
      m = ComboBox1.List(0)
      Sheets(m).Activate
      nnomm.RowSource = Sheets(m).Range("N6:N13").Address
      Application.EnableEvents = True
    End Sub
    Private Sub ComboBox2_Change()
       Application.EnableEvents = False
     
       Cells(ComboBox2.ListIndex + 6, 1).Activate
       tniveau.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 2).Text
       tmodels.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 3).Text
       tcapacite.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 9).Text
       ttare.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 4).Text
       tpoids.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 5).Text
       ttromblon.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 6).Text
       ddiff.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 8).Text
       datejour.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 10).Text
       nnomm.Value = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 11).Value
       Tpese.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 7).Text
       ccomm.Text = ActiveSheet.Cells(ComboBox2.ListIndex + 6, 12).Text
     
     
     
     
       Application.EnableEvents = True
     
    End Sub
     
    Private Sub CommandButton2_Click()
    MsgBox ("Merci de votre visite!"), vbInformation, "A BIENTOT!"
    Unload Menu 'Application.Quit (à remettre si on veut sortir du fichier)
    End Sub
     
    Private Sub ComboBox1_Change()
      Dim source As Range, c As Range
     
      m = Me.ComboBox1.Value
      Sheets(m).Select
      'entrer la liste des noms en colonne N ligne 6  (peut être à cacher!)
      nnomm.RowSource = Sheets(m).Range(Cells(6, 14), Cells(6, 14).End(xlDown)).Address
      nnomm.Value = ""
     
      'entrer la liste des Numéros dans le combo2
      Set source = ActiveSheet.Range(Cells(6, 1), Cells(6, 1).End(xlDown))
      ComboBox2.RowSource = source.Address
      ComboBox2.ListIndex = 0
     
    End Sub
     
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then Cancel = True
    End Sub
    J'ai supprimé la gestion des fenêtres Windows qui ne me concernait pas...

    En tout cas ce code fonctionne chez moi en Excel 13

    a++

    le fichier : EXTINCTEURS3.xls

    geogeo

  7. #7
    Membre averti
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Août 2014
    Messages : 46
    Par défaut
    Bonjour, voila j'ai presque fini

    mais j'ai mis non modal, mais en faite j'aimerais le faire en clic sur bouton Bascule

    merci

    Pièce jointe 202418

  8. #8
    Membre chevronné
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Par défaut
    ...j'ai mis non modal, mais en faite j'aimerais le faire en clic sur bouton Bascule...
    bonsoir,

    quelques remarques :

    Le code ne fonctionne pas en 64 bits (la gestion des fenêtres) mais en excel 13 32 bits...
    j'ai donc essayé sur une version 2003 et ça marche!

    Tu n'as pas fais le contrôle de saisie des nombres et le 6.2 est pris pour du texte donc la formule de calcul de poids ne fonctionne plus.
    Tu peux reprendre mon filtre.

    La saisie des dates est en texte donc non filtrée, même problème...

    Pour la bascule modale non modale je ferai un bouton changeant de "Caption" Au clic :
    1)faire un booleen "modal" public

    2)au clic mettre ton init de modalite à 1 ou 0 fonction de "modal et inverser modal

    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
    26
    Dim modal As Boolean
    
    
    Private Sub CommandButton3_Click()
        Dim hWnd As Long
        If modal Then
            hWnd = FindWindowA("XLMAIN", Application.Caption)
            EnableWindow hWnd, 1
            CommandButton3.Caption = "non Modal"
        Else
            hWnd = FindWindowA("XLMAIN", Application.Caption)
            EnableWindow hWnd, 0
            CommandButton3.Caption = "Modal"
            
        End If
        modal = Not modal
    End Sub
    
    Private Sub UserForm_Initialize()
    Dim J As Long, I As Integer, ER
       'suite de ta procédure
    ..............
       'à la fin
    Me.StartUpPosition = 2
    modal = True
    End Sub
    Ne pas oublier d'initialiser modal à true dans "UserForm_Initialize".

    Cordialement,
    geogeo

  9. #9
    Membre averti
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Août 2014
    Messages : 46
    Par défaut
    Bonjour geogeo70,

    merci pour ta réponse

    des que je mais ta formule plus rien de fonctionne

    je suis bloqué

    cordialement

  10. #10
    Membre chevronné
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Par défaut
    bonjour,

    Je n'ai peut être pas tout dit :

    j'ai fait un demarrage avec "userform1.show" seulement en mettant la propriete showmodal à true (en édition pas dans le code).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    UserForm1.Show
    End Sub
    J'ai supprimer les lignes de modalité dans userform_initialise (en fait j'ai supprimé).

    Sinon peut-être voir en mettant un point d'arrêt dans le code du bouton, exécuter ligne après ligne le moment de blocage...

    Je te joins le fichier qui fonctionne chez moi :
    Extincteurs 2016bis.xls

    cordialement,
    Geogeo

  11. #11
    Membre averti
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Août 2014
    Messages : 46
    Par défaut
    Rien a dire

    Génial!!!!!

    dernier petit truc sur le bouton, je peut pas accéder au Menu accueil etc... en Haut

    cordialement

  12. #12
    Membre chevronné
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Par défaut
    bonsoir,

    Pour passer en non modal par un code, je te propose de créer une "userform" qui saisirait identifiant et code (tel que on pourrait mettre plusieurs utilisateurs). faire par exemple une feuille cachée contenant le code (appelée "données" par exemple), ce qui donne en image :
    Nom : ecranextincteur.jpg
Affichages : 516
Taille : 119,0 Ko

    code du bouton modal :
    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
    Private Sub CommandButton3_Click()
        Dim hWnd As Long
        Dim modal As Range
     
        Set modal = Range("modal") 'nom de la cellule B1 de "Données"
        If Not modal Then Fpassword.Show Else modal = False 'Pour retour à Modal
        If modal Then
            hWnd = FindWindowA("XLMAIN", Application.Caption)
            EnableWindow hWnd, 1
            CommandButton3.Caption = "non Modal"   ' Pour noter l'état du bouton
        Else
            hWnd = FindWindowA("XLMAIN", Application.Caption)
            EnableWindow hWnd, 0
            CommandButton3.Caption = "Modal" 
        End If
     
    End Sub
    J'ai mis un nom sur la cellule B1 de la feuille "données" cachée.

    Dans le "Fpassword" 2 textbox dont la propriété password = "*" pour textbox2 (saisie cachée par des *)
    J'ai mis geogeo pour nom et 1234 comme code tu peux bien sur changer ou ajouter un autre en colonne I de données

    code du Ok de Fpassword :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton1_Click()
    Dim modal As Range
     
    Set modal = Range("modal")
    If TextBox1.Text <> "" And TextBox2.Text <> "" Then
        modal = VerifMDP(TextBox1.Text, TextBox2.Text) 'appel d'une fonction vérifiant les codes et résultat dans données!B1
    Else
        modal = False
    End If
    If Not modal Then x = MsgBox("Erreur de code!", vbCritical, "Attention!")
    Unload Me
    End Sub
    La fonction VerifMDP est une source que j'ai repris en l'adaptant du forum (merci à lui mais j'ai perdu la trace de son nom,excuses...)

    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
    Function VerifMDP(Utilisateur As String, MDP As String) As Boolean
    Dim rngTrouve As Range
    VerifMDP = False 'par défaut, renvoie FAUX
     
    With Sheets("données") 'dans la feuille paramétrage
         'cherche le nom d'utilisateur saisi
        Set rngTrouve = .Columns(9).Cells.Find(Utilisateur, lookat:=xlWhole)
        If rngTrouve Is Nothing Then 'si il ne trouve pas
            VerifMDP = False 'la fonction renvoie faux
        Else 's'il le trouve
            'vérifie que le mot saisi feuille parametrage   est identique
            'au mot de passe saisi dans le textbox
            VerifMDP = (rngTrouve.Offset(0, 1) = MDP)
        End If
    End With
    End Function
    (le code est dans module 1)
    je te joins mon fichier :

    Pièce jointe 202809

    cordialement

    geogeo

  13. #13
    Membre chevronné
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Par défaut
    ps :

    J'ai oublié de te dire que j'ai désactivé "Application.quit" pour les essais, il suffit de le remettre en fonction

    a++
    geogeo

  14. #14
    Membre averti
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Août 2014
    Messages : 46
    Par défaut
    Bonsoir geogeo70

    j'arrive pas a ouvrir ton lien

    cordialement

  15. #15
    Membre chevronné
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Par défaut
    Extincteurs 2016ter.xls

    Excuses erreur de lien

    cordialement

  16. #16
    Membre averti
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Août 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Août 2014
    Messages : 46
    Par défaut
    bonjour,

    comme dab super

    sauf deux truc.
    quand j'ouvre ton fichier il et deja en non modal.
    quand je touche l'useform il repasse modal
    quand je mais non modal je peut pas accédé au menu d'excel
    je ces je suis chiant

    sinon beau boulot

  17. #17
    Membre chevronné
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Par défaut
    bonsoir,

    Je crois que ton utilisation de la fonction windows de modalité provoque ce problème, en tout cas c'est ce que je constate en lançant non modal.

    Donc j'ai fait un essai en fonctionnant avec les outils excel et çà fonctionne.

    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 CommandButton3_Click()
        Dim modal As Range
     
        Set modal = Range("modal")
        If modal Then Fpassword.Show Else modal = True
        If Not modal Then
            Unload UserForm1
            UserForm1.Show vbModeless
        Else
            Unload UserForm1
            UserForm1.Show
     
        End If
     
    End Sub
    Mais pour cela je dois initialiser le nom du bouton à l'entrée en lisant "modal" qui doit lui-même être initialisé à true au lancement de userform1...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_Open()
    Range("modal") = True
    UserForm1.Show
    End Sub
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub UserForm_Initialize()
    '.................
    Me.StartUpPosition = 2
    If Range("modal") Then CommandButton3.Caption = "Modal" Else CommandButton3.Caption = " Non Modal"
    End Sub
    Le fichier :

    Extincteurs 2016-4.xls

    fin ....

    cordialement

    Geogeo

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

Discussions similaires

  1. Probleme programme d'une Liaison RS232 Série en C
    Par dawud dans le forum Réseau
    Réponses: 4
    Dernier message: 02/03/2009, 22h08
  2. Probleme programme java
    Par G4uthier dans le forum Applets
    Réponses: 4
    Dernier message: 13/01/2008, 08h50
  3. probleme programme C
    Par space_56 dans le forum C
    Réponses: 24
    Dernier message: 14/11/2007, 00h08
  4. probleme programme structuré.
    Par argon dans le forum C
    Réponses: 10
    Dernier message: 31/01/2007, 10h11
  5. Slider problème programmation
    Par Bizarroide63 dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 27/07/2006, 03h43

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