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 :

{VBA Excel}Création de 2 condition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut {VBA Excel}Création de 2 condition
    Bonjour,

    Je dois créer une condition pour obliger les personne utilisant un fichier excel de remplir la case au dessus d'elle et les cases a cotés

    Pour cela je dois réaliser deux conditions

    La 1er condition :
    Si la case d'au dessus n'est pas remplis je ne peux pas ecrire dans cette case.

    2eme condition :
    Si la case a coté n'est pas remplis je ne peux pas écrire dans cette case

    Exemple :

    La case A1 n'est pas remplie, donc je ne peux pas remplir la case A2

    Si la case A2 n'est pas remplie, je ne peux pas remplir la case F2

    Si la case A1 est remplie, je peux remplir la case A2 et ensuite remplir la case F2

    Je ne sait pas trop comment écrire cette macro. Voici un début que j'ai réalisé.

    Merci d'avance de tous vos coups de pouces ou autre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Message()
        Application.ScreenUpdating = False
        Sheets("Saisie").Select 'Feuille où se trouve le tableau
        For i = 5 To 10000
            acquit = Cells(i-1, 1) 'colonne A
            If Not IsEmpty(acquit) Then
                MsgBox "Le case avant n'est pas remplie" 'message d'erreur
              Else
                Sheets("Saisie").Select
            End If
        Next i
        Application.ScreenUpdating = True
    End Sub
    Le nom sur la feuille que je travaille se nomme Saisie

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    357
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2008
    Messages : 357
    Par défaut
    Bonjour Thomas

    J'espère que ma réponse te conviendra :

    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_Change(ByVal Target As Range)
    If Target.Row <> 1 Then
        If Target <> "" And Target.Offset(-1, 0) = "" Then
        Target = ""
        MsgBox "Merci de remplir la case du dessus au préalable"
        Exit Sub
        End If
    End If
    If Target.Column <> 1 Then
        If Target <> "" And Target.Offset(0, -1) = "" Then
        Target = ""
        MsgBox "Merci de remplir la case d'à côté au préalable"
        Exit Sub
        End If
    End If
    End Sub

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    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
    14
    15
    16
    17
    18
    Sub Thomas()
    
    Target As Range
    If Target.Row <> 1 Then
    If Target <> "" And Target.Offset(-1, 0) = "" Then
    Target = ""
    MsgBox "Merci de remplir la case du dessus au préalable"
    Exit Sub
    End If
    End If
    If Target.Column <> 1 Then
    If Target <> "" And Target.Offset(0, -1) = "" Then
    Target = ""
    MsgBox "Merci de remplir la case d'à côté au préalable"
    Exit Sub
    End If
    End If
    End Sub

    Voila j'ai inserer le code de telle maniere mais ne se lance pas
    et me met instruction incorrecte a la ligne en rouge

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    357
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2008
    Messages : 357
    Par défaut
    En fait ce type de code ne se lance pas par bouton de commande, il s'execute lorsqu'un cellule de ta feuille est modifiée
    c'est l'instruction worksheet_change

    Sélectionne ta feuille dans vba et tu insères le code tel qu'il est

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    Je ne vois pas ce que tu veux dire

    J'ai compris pour cette ligne de code quand je modifie ca me lance la macro
    mais quand je lance la macro
    une fenetre apparait et me demande un nom de macro
    j'en met un au hasard et ca me crée une nouvelle macro

    j'ai pourtant selectionner la feuille comme tu as dis

    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_Change(ByVal Target As Range)
    Sheets("Saisie").Select 'selection de la feuille
    If Target.Row <> 1 Then
    If Target <> "" And Target.Offset(-1, 0) = "" Then
    Target = ""
    MsgBox "Merci de remplir la case du dessus au préalable"
    Exit Sub
    End If
    End If
    If Target.Column <> 1 Then
    If Target <> "" And Target.Offset(0, -1) = "" Then
    Target = ""
    MsgBox "Merci de remplir la case d'à côté au préalable"
    Exit Sub
    End If
    End If
    End Sub

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    357
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2008
    Messages : 357
    Par défaut
    Non c pas ça en fait tu vas dans VBA
    dans ton explorateur de projets tu te positionnes sur ta feuille "saisie"
    puis là tu colles le code tel qu'il est

    et là, dès qu'une modif sera faite sur ta feuille excel le code se lancera

  7. #7
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    (soupir...)... (pas d'exaspération, faut s'entendre...)

    Dans l'éditeur VBA, il y a une petite fenêtre à gauche avec une arborescence du genre :

    - Projet VBA (Classeur1)
    - Objets Microsoft Excel
    - Feuil1 (Feuil1)
    - Feuil2 (Feuil2)
    - Feuil3 (Feuil3)
    - Module1

    Pour obtenir un squelette de code événementiel pour une feuille ou pour le classeur :
    • Tu double-cliques sur la feuille en question (Feuil1, par exemple). Une page d'édition de code s'ouvre.
    • En haut il y a deux liste déroulantes. Tu choisis dans celle de gauche l'objet Worksheet (d'ailleurs, il n'y a que celui là!) et dans celle de droite l'événement Change.
    • Finalement, tu ne copies que le code nécessaire à l'intérieur de la structure qui a été automatiquement ajoutée.


    Voilà!

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

Discussions similaires

  1. [VBA EXCEL] Création de fichiers "fantômes"
    Par ancel17 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/07/2007, 14h38
  2. {VBA-Excel}Création de macro
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 04/06/2007, 11h54
  3. [VBA-Excel] Création de l'événement d'un clic droit
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/08/2006, 12h36
  4. [VBA-Excel] Création d'une boîte de dialogue interactive
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/07/2006, 11h55
  5. VBA Excel - Création de graphique
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/01/2006, 16h11

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