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]Select case qui ne fonctionne pas :(


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut [VBA-E]Select case qui ne fonctionne pas :(
    Bonjour je travail sous Excel 97 pour faire des macro
    J'ai fais ce code mais il ne fonctionne pas (il compile ne fais rien)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    For j = Asc("B") To Asc("G")
        Select Case j
            Case "B":
        Range("&j8").FormulaR1C1 = "Recu"
            Case "C":
        Range("&j8").FormulaR1C1 = "Traité"
            Case "D":
        Range("&j8").FormulaR1C1 = "RAF"
        End Select
        Next
    Ce code est censé se balader des colonne B à G
    puis si c'est la colonne B il marque en B8 Recu
    si c'est la colonne C il marque en C8 Traité
    si c'est la colonne D il marque en D8 RAF
    mais pour l'instant cela ne fais rien!
    Une autre petite question au passage comment faire pour mettre 2 lettres dans mon Case :
    je souhaiterai faire ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    For j = Asc("B") To Asc("G")
        Select Case j
            Case "B" or "E":
        Range("&j8").FormulaR1C1 = "Recu"
    ...

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    comme tu fais le test sur la valeur ASCII le test sur le caractère ne va rien donner

    Case Asc("B") marchera sans doute mieux

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Oui... et si tu mets formula à la place de formulaR1C1, ça serait aussi bien ...

    A+

  4. #4
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Salut,

    Dans un select case le "ou" est une virgule "," exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For j = Asc("B") To Asc("G") 
        Select Case j 
            Case Asc("B"), Asc("E")
        Range("&j8").FormulaR1C1 = "Recu" 
    ...
    Et puis moi je met pas de ":" et ça marche (excel 2000)
    Pour plus de détail tu peux faire

    Igloobel

    PS : ouskel'n'or tu viens de poster pendant que je créais mon post pourquoi "formula" est mieux que "formular1c1" ? dans l'aide d'excel (je viens de faire F1) c'est pas clair que c'est mieux

  5. #5
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 130
    Points : 166
    Points
    166
    Par défaut
    salut à tous,

    je ne comprend pas:
    dans ce cas :
    est convenable non ?
    @+

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    FormulaR1C1 est réservé aux FORMULES EXCEL à insérer dans les cellules. Comme tu insère une donnée, Value ou Formula sont plus adaptés. Rien de grave.
    Par contre, je me demande pourquoi tu t'escrimes à vouloir utiliser les lettres pour tes colonnes à la place des N° de colonne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For j = 2 To 7
        Select Case j 
            Case 2 
                 Range("J8").Formula = "Recu" 
            Case 3 
                 Range("J8").Formula = "Traité" 
            Case 4
                 Range("J8").Formula = "RAF" 
        End Select 
    Next
    Si J8 est bien la cellule dans laquelle tu veux placer ta donnée.

    Tu peux aussi faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(NoLigne, 8).formula = "La donnée"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(NoLigne, NoCol).formula = "La donnée"
    si tu veux utiliser des variables comme N° de lignes ou de colonnes

    A+

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Pour compléter Ouskel'n'or


    Formula et FormulaR1C1 sont utilisées pour connaître ou modifier une formule inscrite dans une cellule...

    formula utilise l'adressage A1 et formulaR1C1 utiliser l'adressage L1C1 (Colonnes renseignées par des numéros et non par des lettres, voir dans Excel Outils/Options...)

    Dès lors, plutôt que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    range("a1").formula = "RECU"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    range("a1").formulaR1C1 = "RECU"
    j'utiliserais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Range("a1") = "RECU"
    Pierre Fauconnier

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Ok, Pierre, dans une version d'Excel > 97, parce que
    Range("a1") = "RECU"
    ne fonctionne pas sur Excel97.
    Tu vérifies ta version

    A+

  9. #9
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Salut,
    en 2000 ça marche (je viens de tester)

    chapeau et merci ouskel'n'or et Pierre Fauconnier pour vos explication sur formula et formulaR1C1

    Igloobel

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    suite à vos remarque j'ai essayer de modifier mon code mais comme je maitrisse assez mal je suis un peu perdu

    j'ai fais ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    For NoColonne = 2 To 7
        Select Case NoColone
            Case 2, 5:  'colonne B et E
        Cells(8, NoColonne).Formula = "Recu"
            Case 3, 6:
        Cells(8, NoColonne).Formula = "traité"
            Case 4, 7:
        Cells(8, NoColonne).Formula = "RAF"
        End Select
        Next
    Hélas rien ne s'affiche dans les case B8,C8,D8,E8,F8,G8 ...

  11. #11
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    bon à colonne il faut 1 ou 2 n ?

  12. #12
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par Nom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        ...
        Select Case NoColone
            Case 2, 5:  'colonne B et E
        Cells(8, NoColonne).Formula = "Recu"
        ...
        End Select
        Next
    Hélas rien ne s'affiche dans les case B8,C8,D8,E8,F8,G8 ...
    Il ne faut pas les : sur la ligne Case...

    Pierre Fauconnier

  13. #13
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Pour compléter la remarque de BBIL,...

    Pense à toujours avoir
    En début de tes modules...

    Cela force la déclaration des variables et ton problème d'orthographe dans les noms des variables sera résolu...

    Pour que cela soit fait POUR LES NOUVEAUX MODULES, va dans Outils/Options et coche la propriété "Déclaration automatique des variables"

    Ok?

    Pierre Fauconnier

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    bon à colonne il faut 1 ou 2 n ?
    j'ai honte !!!!!!!!!
    désolé

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    merci à vous tous de votre aide

  16. #16
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Salut,

    colone et colonne sont deux variables différentes si tu testes sur une et que tu incrémentes une autre cela ne peux pas marcher !

    choisi la même variable 1 ou 2 n, mais choisi la même

    Igloobel

  17. #17
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par ouskel'n'or
    Ok, Pierre, dans une version d'Excel > 97, parce que
    Range("a1") = "RECU"
    ne fonctionne pas sur Excel97.
    Tu vérifies ta version

    A+
    Cette syntaxe fonctionne sans problème sur Excel 97...

    Pierre Fauconnier

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    encore une petite question est il possible d'utiliser les numéro de colonne et de ligne lors d'un Range

    par exemple à la place de
    mettre Range (Cells(1,1)).Select
    j'ai essayé et ca m'a donné un code d'erreur l'objet 'Range' de l'objet '_Global' a échoué

  19. #19
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Je serai tenté de dire

    Soit tu utilises Range
    Soit tu utilises Cells...

    Cela étant, l'adresse d'un range est une propriété Texte, il est donc possible de la créer dynamiquement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Ligne = 4
    range ("a" & Ligne) = ...
    ou encore, pour l'exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Range("a" & ActiveCell.Row) = "Pierre"
    Note que lorsque tu utilises Cells(i,j), i représente la ligne et j la colonne. Tu peux aussi utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Range(Cells(5, 9).Address) = "Pierre"
    Bref, tu as plein de possiblités pour créer l'adresse de ta cellule ou de ta plage...

    Ok?

    Pierre Fauconnier

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    tres bien j'utiliserais donc un Cells (NoLigne,NoColonne).Select c'est plus pratique pour les boucles

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [PHP 5.1] Un "select count" qui ne fonctionne pas
    Par Milyshyn76 dans le forum Langage
    Réponses: 2
    Dernier message: 19/03/2009, 14h42
  2. un select case qui ne fait pas tout ce qu'on lui demande
    Par will Igetit dans le forum Excel
    Réponses: 1
    Dernier message: 17/12/2008, 21h18
  3. Select Case qui ne marche pas
    Par Zak Blayde dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/07/2007, 13h45
  4. Réponses: 10
    Dernier message: 30/03/2007, 17h30
  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