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 :

Interdire la saisie dans une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut Interdire la saisie dans une cellule
    Bonjour à tous,

    Voici mon problème. Ce code ci-dessous me permet dans une application de ne saisir que dans les zones vides et qui ne sont pas un jour de week-end.
    Par contre, je n'arrive pas à coder le fait que si la cellule correspond à un jour férié, saisie impossible. Les jours fériés sont indiqués dans une feuille nommée "Don" et une zone nommée "fériés".
    Pouvez-vous m'aider s'il vous plait ?
    Merci par avance

    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
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Col As Long
    Dim Lig As Long
    Dim A As Long
        If Intersect(Range("ZO1"), ActiveCell) Is Nothing Then Exit Sub
        If IsEmpty(ActiveCell.Value) Then
    Lig = 5
    Col = ActiveCell.Column
    A = Cells(Lig, Col).Value
        If A = 0 Then Col = Col - 1
        If Weekday(Cells(Lig, Col).Value) <> 1 And Weekday(Cells(Lig, Col).Value) <> 7 Then
    Load FrmAbs
    FrmAbs.Show
        End If
     End If
    End Sub
    J'ai également une autre question : Comment peut-on insérer la date du jour dans la barre de titre d'un UserForm ?
    Merci pour votre aide

  2. #2
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonjour,
    à tester

    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
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Col As Long
    Dim Lig As Long
    Dim A As Long
    If Intersect(Range("ZO1"), ActiveCell) Is Nothing Then Exit Sub
    If IsNumeric(Application.Match(Target, Sheets("Don").Range("fériés"), 0)) Then Exit Sub
    If IsEmpty(ActiveCell.Value) Then
      Lig = 5
      Col = ActiveCell.Column
      A = Cells(Lig, Col).Value
          If A = 0 Then Col = Col - 1
      '    If Weekday(Cells(Lig, Col).Value) <> 1 And Weekday(Cells(Lig, Col).Value) <> 7 Then
          If Weekday(Cells(Lig, Col).Value, 2) < 6 Then
            Load FrmAbs
            FrmAbs.Show
          End If
     End If
    End Sub
    cordialement

  3. #3
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    re

    je n'avais pas lu la 2ème question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Initialize()
    Me.Caption = Date
    End Sub

  4. #4
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Bonjour fred65200,

    J'ai essayé le code mais cela ne fonctionne pas.
    Par contre le 2ème, insérer date dans une UserForm ça fonctionne.
    Mais est-ce que l'on peut mettre un titre + la date ?

    Quelqu'un a-t-il une idée ?

  5. #5
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    rebonjour

    Point n°1 : Remplace Target par Cells(Lig, Col).Value
    Si ça ne fonctionne toujours pas, le mieux serait que tu nous mettes un classeur au format .ZIP sans donnée personnelle.

    Point n°2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub UserForm_Initialize()
    Dim monTitre as String
    monTitre = "Un titre quelconque"
    Me.Caption = monTitre & " - " & Date
    End Sub
    cordialement

  6. #6
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Bonjour fred65200

    Pour le point n°2 c'est ok.
    Pour le point n°1 c'est ok également, par contre j'ai modifié un peu le code que tu m'as donné car cela ne fonctionnait pas.
    Voici le 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
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Col As Long
    Dim Lig As Long
    Dim A As Long
        If Intersect(Range("ZO1"), ActiveCell) Is Nothing Then Exit Sub
        If IsEmpty(ActiveCell.Value) Then
    Lig = 5
    Col = ActiveCell.Column
    A = Cells(Lig, Col).Value
        If A = 0 Then Col = Col - 1
        If Weekday(Cells(Lig, Col).Value) <> 1 And Weekday(Cells(Lig, Col).Value) <> 7 Then
        If IsNumeric(Application.Match(Cells(Lig, Col), Sheets("Don").Range("fériés"), 0)) Then Exit Sub
    Load FrmAbs
    FrmAbs.Show
            End If
        End If
    End Sub
    Merci beaucoup pour ton aide, j'apprécie le sérieux avec lequel chacun prend soin de répondre et ce n'est pas toujours le cas sur d'autres sites d'entraide.

  7. #7
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonjour

    Effectivement col et lig n'étaient pas initialisée avant la ligne de code.

    tu peux tout de même remplacer la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Weekday(Cells(Lig, Col).Value) <> 1 And Weekday(Cells(Lig, Col).Value) <> 7 Then

    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If Weekday(Cells(Lig, Col).Value, 2) < 6 Then
    une seule condition.

    cordialement

  8. #8
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Je n'avais pu vu cette modification
    Merci du rappel

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

Discussions similaires

  1. [XL-2000] Interdire la saisie dans une cellule.
    Par cedana dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/12/2009, 15h47
  2. limiter la saisie dans une cellule
    Par lecail65 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 12/12/2007, 12h37
  3. Interdire la saisie dans une combobox
    Par natie_49 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 19/12/2006, 12h27
  4. comment interdire la saisie dans une combolist
    Par awatif dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 06/10/2006, 23h03
  5. [VBA-E]controle de saisie dans une cellule
    Par greg778 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 03/03/2006, 16h43

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