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-e] Date et valeur de cellule


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
    Profil pro
    Inscrit en
    Août 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 6
    Par défaut [vba-e] Date et valeur de cellule
    Bonjour à tous,

    Ce doit être tellement évident que je ne vois pas l'erreur...

    Mon code bloque sur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Sheets("parametres").Cells("B2").Value = 1 Then GoTo moislab1
    Mon code est situé dans un bouton OK de userform.
    Ce code est décliné pour tous les mois, les valeurs de B2 allant de 1 à 12.

    parametres est la feuille contenant la cellule B2
    B2 contient la formule : =MOIS(B1) et affiche donc 9
    B1 contient la formule : =AUJOURDHUI() et affiche donc 29/09/2006

    Donc... Comment emettre la condition "Si la cellule B2 affiche 1" GoTo moislab1 ?

    J'espère être clair... j'en appelle à votre indulgence de grands maître du VBA... En tout cas un grand merci d'avance...

    Max_c

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    et c'est ou
    moislab1 ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 6
    Par défaut
    moislab1 est juste après :

    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
     
    If Sheets("parametres").Cells("B2").Value = 1 Then GoTo moislab1
    If Sheets("parametres").Cells("B2").Value = 2 Then GoTo moislab2
    If Sheets("parametres").Cells("B2").Value = 3 Then GoTo moislab3
    If Sheets("parametres").Cells("B2").Value = 4 Then GoTo moislab4
    If Sheets("parametres").Cells("B2").Value = 5 Then GoTo moislab5
    If Sheets("parametres").Cells("B2").Value = 6 Then GoTo moislab6
    If Sheets("parametres").Cells("B2").Value = 7 Then GoTo moislab7
    If Sheets("parametres").Cells("B2").Value = 8 Then GoTo moislab8
    If Sheets("parametres").Cells("B2").Value = 9 Then GoTo moislab9
    If Sheets("parametres").Cells("B2").Value = 10 Then GoTo moislab10
    If Sheets("parametres").Cells("B2").Value = 11 Then GoTo moislab11
    If Sheets("parametres").Cells("B2").Value = 12 Then GoTo moislab12
     
    moislab1:
    confba.moisba.Caption = "janvier"
    GoTo finlab
     
    moislab2:
    confba.moisba.Caption = "février"
    GoTo finlab
     
    moislab3:
    confba.moisba.Caption = "mars"
    GoTo finlab
     
    moislab4:
    confba.moisba.Caption = "avril"
    GoTo finlab
     
    moislab5:
    confba.moisba.Caption = "mai"
    GoTo finlab
     
    etc....
    n'hésite pas à poser des questions si ce n'est pas clair... en tout cas merci

    Max_c

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ton code devrai marché ... c'est quoi le message d'erreur... ?

    sinon l'utilisation des goto et à proscrire... c'est une source d'erreur essai d'utiliser un select case

  5. #5
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Par défaut
    Il me semble que cells ne peut prendre que (RowIndex,ColumnIndex) comme argument donc si je dis pas n'importe quoi, il faudrait que tu remplaces tes:

    par des
    ou par des P.S. je suis bien d'accord sur la proscription des goto (sauf pour les messages d'erreurs). Tu pourrais aussi faire une table de correspondance avec une collection... et faire une Sub moislab:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim MoisCorrespondance as New Collection
    MoisCorrespondance.add "janvier"
    MoisCorrespondance.add "fevrier" 'etc... mais il faut le faire dans l'ordre (ou utiliser des dictionnaires...)
     
    Public Sub mislab(byval IndexMois as long)
          confba.moisba.Caption=MoisCorrespondance.Item(IndexMois)
          'enlever le 2e goto et le remplacer par une fonction...
    endsub
     
    If Sheets("parametres").Cells(2,2).value = 1 Then mislab(1)

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 6
    Par défaut


    EXCELLENT!!!! En remplaçant 'Cells' par 'Range' ça marche impec!!!!

    C'était sous nos yeux...

    Un grand merci à vous, je prend bonne note de vos conseils et je replonge dedans...

    Max_c

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    a oui, VBall, j'ai raté ce Cells("..")

    tiens pour la peine une autre solution pour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    i = Sheets("parametres").Cells(2,2).Value
     
    if i>= 1 and i<= 12 then confba.moisba.Caption =format(dateserial(0,i,1),"MMMM")

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

Discussions similaires

  1. VBA-Excel copier la valeur d'une textbox dans une cellule
    Par GrandGarfield dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/08/2006, 10h15
  2. [VBA/Excel] Supprimer valeur de cellule
    Par amd64 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/07/2006, 12h41
  3. [VBA-E] Effacer les valeurs d'une plage de cellules
    Par jfamiens dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 10/06/2006, 11h07
  4. [VBA-E]ajouter 2 heure à une date récupéré d'une cellule
    Par amel95140 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/06/2006, 08h55
  5. [VBA]Affectation d'une valeur à une cellule par une fonction
    Par lallougri dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/02/2006, 14h24

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