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 :

Remplacer valeurs par d'autres à grande échelle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 2
    Par défaut Remplacer valeurs par d'autres à grande échelle
    Bonjour,

    Dans le cadre d'une étude statistique, j'ai besoin de modifier les réponses reçu grâce à notre questionnaire afin de pouvoir les traiter sur un logiciel de statistique. Par exemple remplacer les réponses "oui", "non" et "je ne sais pas" par les valeurs "0", "1" et "2". VBA me semble mieux que la solution consistant à faire un "remplacer" manuel pour chaque colonne.

    Je ne sais pas si cela est possible mais ce que je cherche à faire, c'est de remplacer les valeurs de toutes les colonnes (correspondants aux réponses des différentes questions) par d'autres valeurs (numériques) afin de pouvoir travailler les données sur un autre logiciel.

    Il s'agit donc d'une commande "remplacer" mais sur l'ensemble d'une feuille comportant des valeurs (réponses) différentes, chaque colonne comportant un nombre de réponse limité.

    Etant débutant dans ce domaine je ne sais pas s'il faut créer une commande pour chaque colonne ou si une commande existante peut faire cela sans devoir écrire dans le code toutes les réponses possibles pour chaque colonne, par exemple une commande de regroupement remplaçant chaque réponse identique par une même valeur.

    Je ne sais pas si cela est claire mais en gros c'est ce qu'il me faut.
    Si vous avez des questions n'hésitez pas.
    Je remercie par avance ceux qui auront le courage de m'aider.

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 569
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 569
    Par défaut
    Bonjour

    S'il n'y que 3 cas à remplacer, quel que soit le nombre de feuilles et de cellules, c'est faisable en 3 cherche et remplace : pas sur que l'écriture d'un code VBA soit bien utile...

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 2
    Par défaut
    Le problème c'est que pour certaines questions (colonnes) il y a beaucoup plus de 3 réponses possibles, cela va jusqu'à 20 donc c'est super long en manuel, le mieux serait donc une macro.

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Oui c'est possible.
    Si le nombre de colonne ou/et le contenu des entêtes sont variables, le mieux est de faire un tableau avec le nom de l'entête, les valeurs possible et les valeurs correspondantes à mettre à la place

    exemple:

    Nom de l'entête
    Oui - 1
    Non - 2
    Ne sais pas - 3

    Ensuite il suffit d'ouvrir le fichier, de chercher chaque entête qui s'y trouve pour chercher le tableau qui correspond et de faire la correspondance avec les réponses données.

    Il faudrait connaitre la structure du fichier à modifier, sur quelle ligne se trouve les entêtes par exemple.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 569
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 569
    Par défaut
    Re

    Si on sélectionnes l'ensemble des onglets (clic sur le nom du 1er, maintien de shift et clic sur le nom du dernier, l'ensemble des cellules (clic dans l'angle en haut à gauche), comme déjà dit il suffit de 3 cherche et remplace en cliquant sur remplacer tout. En gros 1 minute par cas, soit trois en tout de manips manuelles.

    Le temps d'écrire mon message, ce serait déjà fait !

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Tout dépend le nombre de fichier à traiter, y'en a bien plusieurs hein?

    Sinon en effet une recherche manuelle prendra moins de temps. Pour info il est inutile de sélectionner tous les onglets + cellules, il suffit de choisir "Classeur" dans la fenêtre de recherche (hop 2 mins de gagnées )

    Sinon voila un bout de code, les instructions pour le mettre en place sont en commentaire, j'ai supposé qu'il y avait plusieurs onglet. Si il y a en plus plusieurs fichier, il suffit de les ouvrir un à un, il y a déjà pas mal de sujet en ce moment qui tourne autour de ça, avec quelque recherche tu trouveras des informations.

    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
    Sub ReplacAll()
    Dim Sh As Worksheet
    Dim TheCell As Range
     
    'mettre une feuille en plus dans le classeur avec en colonne A les valeurs à rempalcer et en colonne B les valeurs qui doivent être mises à la place
    'La 1ere ligne contient une entête de ces 2 colonnes
    'Il faut changer le codename de cette page (dans VBE la propriété (Name) de la feuille - cherche CodeName sur google pour plus d'info), le CodeName doit être "Conv"
     
        'On boucle sur tous les onglets
        For Each Sh In ThisWorkbook.Worksheets
            'On évite la feuille qui contient les convertions
            If Sh.CodeName = "Conv" Then
                'On boucle sur chaque valeur devant être remplacée
                For Each TheCell In Conv.Range(Conv.Range("A2", Conv.Cells(Conv.Rows.Count, "A").End(xlUp)))
                    'On remplace
                    Sh.Cells.Replace What:=TheCell.Value, Replacement:=TheCell.Offset(0, 1).Value, LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False
                Next
            End If
        Next
    End Sub
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. [XL-2010] remplacement valeur par une autre valeur
    Par zchikh dans le forum Excel
    Réponses: 2
    Dernier message: 23/02/2014, 21h13
  2. Remplacer une valeur par une autre valeur
    Par Prekestolen dans le forum Formules
    Réponses: 2
    Dernier message: 23/02/2009, 17h18
  3. comment remplacer une valeur par une autre?
    Par bling dans le forum Excel
    Réponses: 5
    Dernier message: 14/02/2009, 18h06
  4. Remplacer une valeur par un autre
    Par zorro13 dans le forum ANT
    Réponses: 7
    Dernier message: 26/09/2007, 15h55
  5. remplacement d'une valeur par une autre
    Par hugoos dans le forum Langage
    Réponses: 9
    Dernier message: 20/09/2005, 21h43

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