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 :

Bloquer UserForm et Verrouillage de page [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Etudiante technico commerciale
    Inscrit en
    Juin 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiante technico commerciale
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2017
    Messages : 6
    Par défaut Bloquer UserForm et Verrouillage de page
    Bonsoir à tous,

    Je suis toute nouvelle ici et sur l'utilisation d'Excel en VBA et j'aurai besoin de votre aide pour 2 petite choses

    Tout d'abord J'ai créee un Userform sous Excel, avec un bouton de validation qui recopie les données dans un tableau mais comment faire pour empêcher la validation tant que certaines TextBox ne sont pas remplies ?

    J'ai essayé : If TextBox1.Value = "" Then MsgBox "Valeur incorrecte": TextBox1.SetFocus: Exit Sub cependant si l'on entre un "espace" avec le clavier dans la TextBox et que l'on valide l'Userform se valide, est ce normale ? Je pensais que le If TextBox1.Value = "" allait empêcher ça moi

    De plus j'aurais besoin de vous pour un autre petit truc, j'aimerai vérouiller avec un mot de passe tout mon fichier excel sauf une colonne de valeur qui peut être variable en nombre de cellule, quelqu'un aurait un bout de code à me donner car je n'y arrive pas avec l'enregistreur ... La colonne est : Range((Cells(1,2),Cells(nb_colonnes,2)).

    merci d'avance et bonne soirée a vous

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Emmaaa Voir le message
    Tout d'abord J'ai créee un Userform sous Excel, avec un bouton de validation qui recopie les données dans un tableau mais comment faire pour empêcher la validation tant que certaines TextBox ne sont pas remplies ?
    Bonjour,

    Concernant la saisie dans le Textbox1, la procédure suivante empêche la saisie d'un espace sur le 1er caractère du TextBox. Il suffit d'ajouter cette procédure dans le code de votre Userform.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     
         If Len(TextBox1) = 0 Then
            Select Case Chr(KeyAscii)
                   Case Chr(32), Chr(160)
                        KeyAscii = 0
            End Select
         End If
     
    End Sub
    Pour information, vous pouvez utiliser le code ci-dessous pour permettre la saisie uniquement de certains caractères :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub TextBoxProjetNumero_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
            If InStr("1234567890,", Chr(KeyAscii)) = 0 Then KeyAscii = 0
    End Sub

    De plus j'aurais besoin de vous pour un autre petit truc, j'aimerai vérouiller avec un mot de passe tout mon fichier excel sauf une colonne de valeur qui peut etre variable en nombre de cellule, quelqu'un aurait un bout de code à me donner car je n'y arrive pas avec l'enregistreur ... La colonne est : Range((Cells(1,2),Cells(nb_colonnes,2))
    Quant au verrouillage, une piste 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     
    Sub ProtectionFeuille(ByVal FeuilleDeSaisie As Worksheet, ByVal AireDeSaisie As Range)
     
        With FeuilleDeSaisie
     
            .Unprotect
            .Cells.Locked = True
            .Cells.FormulaHidden = True
     
            With AireDeSaisie
                .Locked = False
                .FormulaHidden = False
            End With
     
            .Protect
     
        End With
     
    End Sub
     
     
    Sub EssaiProtectionFeuille()
     
    Dim NombreDeLignes As Long
    Dim ShSaisie As Worksheet
    Dim AireADeproteger As Range
     
        Set ShSaisie = Sheets("Feuil1")
     
        With ShSaisie
     
             NombreDeLignes = 5
     
             Set AireADeproteger = .Range(.Cells(1, 2), .Cells(NombreDeLignes, 2))
             ProtectionFeuille ShSaisie, AireADeproteger
             Set AireADeproteger = Nothing
     
        End With
     
        Set ShSaisie = Nothing
     
    End Sub

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Etudiante technico commerciale
    Inscrit en
    Juin 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiante technico commerciale
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2017
    Messages : 6
    Par défaut
    Bonjour,

    Merci pour votre réponse

    Je n'ai pas encore regardé pour le verrouillage, je m'occupe d'abord de la saisie

    Vos deux codes marchent très bien en tout cas merci, cependant si j'effectue un copié/collé il ya quand meme moyen de rentrer certaines valeurs dans la TextBox, connaissez vous un moyen pas trop compliqué d'éviter cela ?

    Oui je sais je chipote un peu désolée mais je cherche vraiment à avoir un bon code sans "faille"

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Emmaaa Voir le message
    Vos deux codes marchent très bien en tout cas merci, cependant si j'effectue un copié/collé il ya quand meme moyen de rentrer certaines valeurs dans la TextBox, connaissez vous un moyen pas trop compliqué d'éviter cela ?
    Il vous faut garder le test de votre premier message pour valider.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Etudiante technico commerciale
    Inscrit en
    Juin 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiante technico commerciale
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2017
    Messages : 6
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Il vous faut garder le test de votre premier message pour valider.
    Je parle d'effectuer un ctrl+v dans la TextBox avec de mauvaise valeurs et rien n’empêche qu'elles soient valider apres de ce que je vois

    J'avais pensé à mettre queque chose comme :
    If Not IsNumeric(TextBox1.Value) Then MsgBox "Valeur incorrecte": TextBox1.SetFocus: Exit Sub

    Cependant je l'ai enlevé car j'ai besoin du point et apparemment le If Not IsNumeric ne me permet pas de l'utiliser ... auriez vous une solution ?

    De plus j'ai essayé votre code de verrouillage mais étant débutante j'ai quelque difficultés, a quel endroit suis je censé mettre votre code ? Y'a t'il quelque chose a changer ? J'aurais voulu le protéger avec un mot de passe, est ce le cas, comment faire ?

    Merci pour l'aide que vous m'apportez car je suis un peu perdue de mon coté

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Emmaaa Voir le message
    Je parle d'effectuer un ctrl+v dans la TextBox avec de mauvaise valeurs et rien n’empêche qu'elles soient valider apres de ce que je vois
    J'avais pensé à mettre queque chose comme :
    If Not IsNumeric(TextBox1.Value) Then MsgBox "Valeur incorrecte": TextBox1.SetFocus: Exit Sub
    Cependant je l'ai enlevé car j'ai besoin du point et apparemment le If Not IsNumeric ne me permet pas de l'utiliser ... auriez vous une solution ?
    De plus j'ai essayé votre code de verrouillage mais étant débutante j'ai quelque difficultés, a quel endroit suis je censé mettre votre code ? Y'a t'il quelque chose a changer ? J'aurais voulu le protéger avec un mot de passe, est ce le cas, comment faire ?
    Que cherchez vous à contrôler dans votre TextBox ? Uniquement des valeurs numériques ? Votre séparateur décimal est le point ?

    Quant au code pour le verrouillage, vous le mettez dans un module standard. Le verrouillage est relatif à l'onglet choisi. Si vous souhaitez mettre un mot de passe, il suffit d'ajouter ce mot de passe comme ci-dessous :

    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
     
    Sub ProtectionFeuille(ByVal FeuilleDeSaisie As Worksheet, ByVal AireDeSaisie As Range)
     
        With FeuilleDeSaisie
     
            .Unprotect ("Mon mot de passe")
            .Cells.Locked = True
            .Cells.FormulaHidden = True
     
            With AireDeSaisie
                .Locked = False
                .FormulaHidden = False
            End With
     
            .Protect ("Mon mot de passe")
     
        End With
     
    End Sub

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

Discussions similaires

  1. [VBA-W]Insérer contenu variable dans page word
    Par jcaspar dans le forum VBA Word
    Réponses: 1
    Dernier message: 24/03/2006, 01h07
  2. VBA creation doc word - mise en page
    Par estampille dans le forum VBA Word
    Réponses: 4
    Dernier message: 18/01/2006, 12h04
  3. [VBA][Word] débutant suppression d'une page
    Par cyrcroix dans le forum VBA Word
    Réponses: 3
    Dernier message: 30/12/2005, 19h22
  4. Verrouillage de pages
    Par Tanahjampea dans le forum Linux
    Réponses: 2
    Dernier message: 09/12/2005, 23h08
  5. en vba bloquer le bouton précédent
    Par Pouyou le caribou dans le forum Access
    Réponses: 5
    Dernier message: 15/06/2005, 19h26

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