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 For [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Par défaut Select Case For
    Bonjour,
    Cela fait des heures aue je bute sur un problème.
    J'ai des valeurs de type texte dans les cellules de ma colonne C.
    Je voudrais remplacer ces valeurs de la sorte:

    Clio --> renault
    Megane -->renault
    Laguna-->renault
    308-->peugeot
    A3-->audi
    207-->peugeot
    A4-->bmw

    Je pense que pour se faire il faut que utiliser une boucle for combiner avec un Select case mais je n'arrive pas à incorporer la boucle FOR dedans.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            Select Case 
                Case "Clio*"   'tout ce aui commence par Clio
                    .Value = "Renault"
                Case "A3*"
                    .Value = "Audi"
                Case "207"
                    .value = "Peugeot"
                'etc....
            End Select

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Dim Marques, Modèles, Quoi As String, Trouve As String
        Marques = Array("Renault", "Renault", "Renault", "Peugeot", "Audi", "Peugeot", "BMV")
        Modèles = Array("Clio", "Megane", "Laguna", "308", "A3", "207", "A4")
        Quoi = InputBox("Entrez le modèle")
        With Application
            Trouve = .Index(Marques, .Match(Quoi, Modèles, 0))
            MsgBox Trouve
        End With
    Si tu utilises "Select Case", tu dois préciser une variable :


  3. #3
    Membre éclairé
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Par défaut
    Bonjour et merci pour ta réponse.
    Je me suis peut être mal exprimé, les valeurs de la colonne C contenant les modèles de véhicule évoluent en permanence.
    J'aimerai que:

    -pour toutes cellules de la colonne C contenant "Laguna", le code me remplace "Laguna" par "Renault"

    -pour toutes cellules de la colonne C contenant "Clio", le code me remplace "Clio" par "Renault"

    -pour toutes cellules de la colonne C contenant "207", le code me remplace "207" par "Peugeot"

    -etc etc


    Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Ce code fonctionne tant que les modèles numériques sont entrés au format texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Dim Marques, Modèles, C As Range
        Marques = Array("Renault", "Renault", "Renault", "Peugeot", "Audi", "Peugeot", "BMV")
        Modèles = Array("Clio", "Megane", "Laguna", "308", "A3", "207", "A4")
        With Application
            For Each C In Range([C1], Cells(Rows.Count, 3).End(xlUp))
                C.Value = .Index(Marques, .Match(C.Value, Modèles, 0))
            Next C
        End With

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Par défaut
    Il fonctionne en effet. Cependant, j'ai oublié de préciser qu'il est possible que j'ai des données au'il ne faut pas remplacer. Le problème de cette macro est que si le mot n'est pas trouvé alors j'ai #N/A. Il faudrait aue si le mot n'est pas trouvé alors on laisse celui contenu dans la cellule.
    De plus, dans le cas des clio, est-il possible de remplacer tous les mots contenant "Clio" par "Renault" étant donné qu'il y a le cas des Clio II, Clio III, Clio IV...

    Merci encore

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    j'ai oublié de préciser qu'il est possible que j'ai des données au'il ne faut pas remplacer.
    Oui, lesquelles ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Dim Marques, Modèles, C As Range
        Marques = Array("Peugeot", "Peugeot", "Audi", "BMV", "Renault", "Renault", "Renault")
        Modèles = Array("207", "308", "A3", "A4", "Clio", "Laguna", "Megane")
        With Application
            For Each C In Range([C1], Cells(Rows.Count, 3).End(xlUp))
                If IsNumeric(.Match(C.Value, Modèles)) Then
                    C.Value = .Index(Marques, .Match(C.Value, Modèles))
                End If
            Next C
        End With

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

Discussions similaires

  1. Problème SELECT, CASE et Group by
    Par Royd938 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 03/10/2014, 07h41
  2. Utiliser une boucle "For" dans un" Select Case"
    Par Novice_vba dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/04/2014, 09h34
  3. erreur select case
    Par maximedrouet dans le forum ASP
    Réponses: 4
    Dernier message: 15/05/2006, 14h40
  4. erreur select case
    Par maximedrouet dans le forum ASP
    Réponses: 12
    Dernier message: 06/01/2005, 15h33
  5. vérification de passage dans un select case
    Par arsgunner dans le forum ASP
    Réponses: 5
    Dernier message: 14/06/2004, 10h05

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