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 :

problème de syntaxe


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Par défaut problème de syntaxe
    Bonjour,

    Je suis debutant et j'ai realise mon premier programme.
    Je pense que l'algorythe en lui-meme est pas trop mal par contre j'ai beaucoup de soucis pour interagir avec l'environnement excel. Malgre des recherches sur internet ma synthaxe n'est pas bonne pour les commandes suivantes:

    - effacer le contenu d'une feuille:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheet("querry_results").Cells.Select
    Selection.ClearContents
    - partager des variable entre differents userforms (j'ai juste enlever private et mis public, est-ce suffisant?)

    - effacer la derniere ligne de donnees d'un tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheet("projecttasks").Row("65536").End(xlUp).Offset(0, 0).Select
    Selection.ClearContents
    - alerter l'utilisateur sur la presence de blanc dans un userform:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Me.Txtprojectname.Text = "" Or Me.Txtprojectid.Text = "" Or Me.cbxprojectmanager.Text = "" Or Me.txtstartdateproject.Text = "" Or Me.txtenddateproject.Text = "" Or Me.txttaskhour = "" Or Me.Cbxdomain.Text = "" Then
        MsgBox "Complete the blank(s)"
        Exit Sub
        End If
    - et enfin je voudrais realiser une boucle de type "for each next" sur mes worksheets mais qui ne prendrait en compte qu'une partie de mes worksheets (je voudrais en exclure 5 ou 6).

    Si quelqu'un a une reponse, merci.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 51
    Par défaut
    Bonjour,
    - effacer le contenu d'une feuille:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets("querry_results").Cells.Select
    Selection.ClearContents
    ou mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Feuil1").Cells.ClearContents
    - partager des variable entre differents userforms (j'ai juste enlever private et mis public, est-ce suffisant?)
    Oui, normalement avec variable déclarée en tête d'un module standard.
    - effacer la derniere ligne de donnees d'un tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("projecttasks").Range("A65536").End(xlUp).EntireRow.ClearContents
    - alerter l'utilisateur sur la presence de blanc dans un userform:
    Comme ça je ne vois pas où ça cloche... Peut être une erreur de dénomination.
    - et enfin je voudrais realiser une boucle de type "for each next" sur mes worksheets mais qui ne prendrait en compte qu'une partie de mes worksheets (je voudrais en exclure 5 ou 6).
    Il faut ajouter un test sur le nom de la feuille du genre If Sheets(i) = "Tafeuille5" then ...

    Cordialement

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Par défaut
    Merci beaucoup pour ce coup de pouce, ca va vraiment m'aider a avancer pour tester le reste de mon code.
    Par contre la partie pour verifier les blancs dans le formulaire avait bien bien un problem de denomination mais malgre cette correction le code ne marche toujours pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'test entery data: check blank
        If Me.Txtprojectname.Text = "" Or Me.Txtprojectid.Text = "" Or Me.cbxprojectmanager.Text = "" Or Me.txttaskstartdate.Text = "" Or Me.txttaskenddate.Text = "" Or Me.txttaskhour.Text = "" Or Me.Cbxdomain.Text = "" Then
        MsgBox "Complete the blank(s)"
        Exit Sub
        End If
    De plus le deboguage des precedentes bourdes en a debloque une autre, j'ai un formulaire avec une date de debut et une date de fin a renseigner. J'ai utiliser un control calendar mais ca ne marche pas pour differencier les deux textbox (je pense que mon code est incoherent):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Sub Calendar1_Click()
    If txttaskstartdate.Click Then
    txttaskstartdate.Value = Calendar1.Value
    ElseIf txttaskenddate.Click Then
    txttaskenddate.Value = Calendar1.Value
    End If
    End Sub
    Voila
    merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Par défaut
    bonjour,
    j'ai resolu le problem de la date grace a une autre discussion sur ce forum.
    Par contre je ne comprend toujours pas pourquoi le test pour les blancs ne marchent pas.
    Merci

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par bolloche Voir le message
    le test pour les blancs ne marchent pas.
    Si, au moins, tu nous disais ce qui ne marche pas, on pourrait, peut-être, essayer de t'aider.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Par défaut
    ok,
    pour ce premier code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     'test entery data: check blank
        If Me.Txtprojectname.Text = "" Or Me.Txtprojectid.Text = "" Or Me.cbxprojectmanager.Text = "" Or Me.txttaskstartdate.Text = "" Or Me.txttaskenddate.Text = "" Or Me.txttaskhour.Text = "" Or Me.Cbxdomain.Text = "" Then
        MsgBox "Complete the blank(s)"
        Exit Sub
        End If
    Quand toutes mes entrees sont vides (il suffit de une seule normallement) l'oridnateur passe a la ligne suivante sans afficher la messagebox qu'il devrait affficher. J'ai essayer ac textbox.value mais ca ne change rien.

    Cette partie du code fait partie d'une sequence de test pour savoir si l'utilisateru a bien rentre les donnees et mes lignes suivantes ne marchent pas non plus:

    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
    'test entery data
     
    'check the blanks
        If Me.Txtprojectname.Value = "" Or Me.cbxtaskstartdate.Value = "" Or Me.cbxtaskenddate.Value = "" Or Me.Txtprojectid.Value = "" Or Me.cbxprojectmanager.Value = "" Or Me.Cbxdomain.Value = "" Then
        MsgBox "Complete the blank(s)"
        Exit Sub
        End If
     
    'Check the Date
        If CDate(cbxtaskenddate) < CDate(cbxtaskstartdate) Then
        MsgBox "Enter new date"
        Exit Sub
        Else:
        Date1 = Me.cbxtaskstartdate.Value
        Date2 = Me.cbxtaskenddate.Value
     
    'Check hours field is a number
       If Not Me.txttaskhour.Value.IsNumber Then
        Exit Sub
        MsgBox "Hours field should be a number"
        End If
     
    'Check the coherence between the working-day and the number of hours
     
                'Compute working-day
                  Count = 0
     
                    For i = Date1 To Date2 Step 1
     
                    If Weekday(i, vbMonday) <= 5 Then
                    Count = Count + 1
     
                    Next i
     
                'Check UK holiday
                Sheets("UK_holiday").Select
     
                h = 0
                C = False
                Do
                    h = 1 + h
                    If Cells(h + 2, 1) >= Date1 And Cells(h + 2, 1) <= Date2 Then
                    Count = Count - 1
                    C = True
                    End If
                Loop While Cells(h + 3, 1) <> ""
     
                'Check workhours
                Workhour = Hours / Count
     
                If While workhours > 8 then
     
                MsgBox "Too much working hours for the actual date interval"
                MsgBox "Enter new Hour values or new date interval"
                If C = True Then
                MsgBox "Take care of the UK holiday"
                End if
                Exit Sub
                End if
     
        End If
    L'algorythe ne verifie pas les dates et me dit qu'il y a un next sans for.
    Est ce que quelqu'un voit des boulettes dans ma programmation.
    Merci

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

Discussions similaires

  1. Problème de syntaxe - elements['x'].value
    Par Equus dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/02/2005, 11h22
  2. [Interbase] Problème de syntaxe SQL
    Par navis84 dans le forum InterBase
    Réponses: 4
    Dernier message: 22/12/2004, 17h07
  3. Problème de syntaxe
    Par Mister_FX dans le forum ASP
    Réponses: 5
    Dernier message: 30/06/2004, 10h01
  4. Problème de syntaxe ADO ...
    Par bendev dans le forum ASP
    Réponses: 2
    Dernier message: 15/04/2004, 14h38
  5. Réponses: 2
    Dernier message: 08/03/2004, 15h10

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