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 :

Select Case ne fonctionne pas [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut Select Case ne fonctionne pas
    Bonjour tout le monde!

    J'ai créé un petit fichier excel avec une macro en VBA, il marchait du tonnerre mais au premier essai en réel (le lendemain), il ne marchait plus...

    En fait, lorsque je fais un breakpoint, et le pas à pas sur cette partie du 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
     Select Case b
     
        Case Is = 2
        Cells(14, 2).Value = "0"
        Cells(14, 4).Value = "0"
        Cells(19, 2).Value = "1"
        Cells(19, 4).Value = "1.2"
     
        Case Is = 3
        Cells(14, 2).Value = "0"
        Cells(14, 4).Value = "0"
        Cells(19, 2).Value = "1.2"
        Cells(19, 4).Value = "1.5"
        .
        .
        .
         Case Is = 20
         Cells(14, 2).Value = "0"
         Cells(14, 4).Value = "0"
         Cells(19, 2).Value = "0"
         Cells(19, 4).Value = "2"
     
         End Select
    Quelque soit la case choisie, je rentre dedans, la première ligne cells(14,2)... est en jaune, et lorsque je l'exécute, Pouf

    Le code s'arrête...

    Je n'ai aucune idée du pourquoi, car hier cela marchait sans problème... Si vous pouviez m'aider je vous en serais reconnaissant

    Bonne journée,
    PierrotMfff

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    attention au .. dans ton 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
    Sub test()
    Dim b As Integer
    b = 2
     Select Case b
     
        Case 2
        Cells(14, 2).Value = "0"
        Cells(14, 4).Value = "0"
        Cells(19, 2).Value = "1"
        Cells(19, 4).Value = "1.2"
     
        Case 3
        Cells(14, 2).Value = "0"
        Cells(14, 4).Value = "0"
        Cells(19, 2).Value = "1.2"
        Cells(19, 4).Value = "1.5"
    '    .
    '    .
    '    .
         Case 20
         Cells(14, 2).Value = "0"
         Cells(14, 4).Value = "0"
         Cells(19, 2).Value = "0"
         Cells(19, 4).Value = "2"
     
         End Select

  3. #3
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut
    Ah désolé, ils n'y a pas de points en réalité, c'était pour montrer qu'il y avait beaucoup de cases (peut être source du bug..)

    Une piste? :s

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    Bonjour
    a part peut être les point effectivement je ne vois pas ou est le soucis combien même si to select case a beaucoup de segments
    essais plutot long que integer

    maintenant moi j'esserrais d'etre plus precis

    Et puis si tu envoie des numériques pas la peine des guillemets!!

    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
    Sub test()
    Dim b As Long
    b = 2
     
    With Sheets("nom du sheets")
    Select Case b
     
        Case 2
        .Cells(14, 2).Value = 0
        .Cells(14, 4).Value = 0
        .Cells(19, 2).Value = 1
        .Cells(19, 4).Value = 1.2
     
        Case 3
        .Cells(14, 2).Value = 0
        .Cells(14, 4).Value = 0
        .Cells(19, 2).Value = 1.2
        .Cells(19, 4).Value = 1.5
     
         Case 20
         .Cells(14, 2).Value = 0
         .Cells(14, 4).Value = 0
         .Cells(19, 2).Value = 0
         .Cells(19, 4).Value = 2
     
         End Select
         End WithEnd Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut
    Merci de l'aide, je ne sais pas pourquoi, mais il remarche... cependant je vais quand même changer les éléments que tu as décrit, merci !

    bonne journée

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re pour tes dates
    re

    pas de reponse technique par MP
    pause ta question a la suite ou ouvre un nouveau sujet la prochaine fois !!!!

    en réponse a ton message privé tu a des fonction native vba pour ce genre de truc

    exemple pour le jour d'une date c'est "day(date)" pour le mois c'est month(date)et bien évidement pour l'année c'est year(date)

    parti de la

    disons que ta date c'est 01/01/2014 au format string

    ALORS ON FERA CECI:
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sub separe_date_dans_plusieur_cellules()
    dim madate as string 
    madate="01/01/2014"
    with sheets(1)
    .cells(1,1)=day(cdate(madate))
    .cells(1,2)=month(cdate(madate))
    .cells(1,3)=year(cdate(madate))
    end with
    end sub
    tu te retrouve avec les jour mois année séparés dans les cellule A1,B1,C1

    maintenant si tu le veux en toute lettre ce sera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sub separe_date_dans_plusieur_cellules()
    dim madate as string 
    madate="01/01/2014"
    with sheets(1)
    .Cells(1, 1) = Format(Weekday(CDate(madate)) + 1, "dddd")
    .Cells(1, 2) = Format(Month(CDate(madate)), "mmmm")
    .cells(1,3)=year(cdate(madate))
    end with
    end sub
    plus de question technique par MP sinon grosse bourrade

    voila pour le coup de pouce
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut
    J'ai ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim dateauj As String
    dateauj = Format(Now, "dd/mm/yyyy")
    Sheets("Demande RNC").Cells(4, 4).Value = Day(CDate(dateauj))
    Sheets("Demande RNC").Cells(4, 5).Value = Month(CDate(dateauj))
    mais le problème reste le même:
    dans la 1ère cellule j'ai 15/01/1900
    dans la 2ème j'ai 10/01/1900

    (On est le 15/10)

    (euh oui désolé, j'ouvrirai des nouveaux sujets!)

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    c'est que tes cellules ont un format déjà appliqué soit par une macro soit par le clic droit de la souris puis "format cellule"


    dans ce cas avant la mise en place des données

    tu CHANGE LE FORMAT DES CELLULES CONCERNEES

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub separe_date_dans_plusieur_cellules()
    Range("D4:E4").Clear ' on efface toute mise en forme et tout format
    Range("D4:E4").NumberFormat = "@" 'on met les cellules au format texte
    Dim madate As String
    madate = "01/04/2014"
    With Sheets(1)
    .Cells(4, 4) = Day(CDate(madate))
    .Cells(4, 5) = Month(CDate(madate))
    End With
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Invité
    Invité(e)
    Par défaut
    bonjour,
    tu utilises un string pour stocker la date actuelle?
    quelle drôle d’idée!; quand d'autres pause des question pour remplace un string en date!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Demande RNC").Cells(4, 4).Value = Day(now)
    le format "General" suffit si tu passe les données au bon format!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Demande RNC").Cells(4, 4).Value = format(now,"yyyy-mm-dd hh:mm:ss")
    dans cet exemple la cellule affichera une date au format régionale de Windows!
    Dernière modification par AlainTech ; 20/10/2014 à 08h23.

  10. #10
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut
    Ca marche merci beaucoup

    (J'ai une sorte de formulaire à adapter et la date doit être celle d'aujourd'hui, et décomposée sur trois cases ^^)

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

Discussions similaires

  1. [XL-2007] Select case ne fonctionne pas toujours
    Par mouftie dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 09/01/2015, 18h35
  2. [XL-2010] Fonction select case ne fonctionne pas
    Par wiyouk dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/09/2014, 08h14
  3. select imbriqué ne fonctionne pas
    Par PetitChat73 dans le forum ODI (ex-Sunopsis)
    Réponses: 1
    Dernier message: 26/12/2007, 22h47
  4. SELECT TOP ne fonctionne pas
    Par Negaton dans le forum ASP.NET
    Réponses: 4
    Dernier message: 28/05/2007, 10h26
  5. requête de selection qui ne fonctionne pas
    Par emmablue dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 28/07/2006, 13h55

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