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] Passer de cellules à colonnes spécifiques


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Par défaut [VBA] Passer de cellules à colonnes spécifiques
    (Re-)Bonsoir à tous !

    Mon problème est assez simple à comprendre, mais j'ai du mal à trouver une méthode subtile pour m'en débarrasser.

    Je me suis arrangé pour mettre des séparateurs "|" entre les différents éléments que je veux répartir en colonnes, pour obtenir :

    toto_nom|toto_tel|toto_num => *mise en colonne avec séparateur "|"*

    jusqu'ici tout va bien. Le seul soucis c'est que dans certaines lignes, il n'y a pas le toto_num, ou pas le toto_tel !

    Conclusion évidente: certaines variables sont attribuées aux mauvaises colonnes.

    la seule idée que j'ai eu, c'est de faire une boucle qui parcours chaque colonne et décale les valeurs mal placées, ce qui est très couteux..

    Je suis convaincu qu'il y a une solution plus simple, mais mon cerveau fatigué est en train de rendre l'âme..

    J'espère que j'ai été clair, et merci d'avance!

    Stan

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Une idée peut-être.
    Dans ta fonction ajoute une variable booléenne que tu mets à True si tu ajoutes le séparateur "|" et qui si elle est à False en sortie de boucle ajoute ton séparateur "|".
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Par défaut
    Merci de ta réponse.

    C'est une bonne idée, mais le problème est que je dois insèrer des séparateurs à des endroits précis en fonction de la variable manquante.

    Exemple: Dans une configuration telle que toto_nom|toto_tel|toto_num

    Si il manque toto_nom, je dois insérer "||" avant toto_tel pour conserver l'ordre de mes colonnes et bien spécifier que c'est le "toto_nom qui est manquant, tq : ||toto_tel|toto_num

    Le cas par cas risque d'être assez laborieux, non ?

    Stan

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je n'avais vu le problème comme cela.
    Tu pourrais faire un test supplémentaire en vérifiant que si la cellule est vide tu ajoutes automatiquement le caractère de séparation.
    Il faudrait peut-être expliquer ton problème dans son ensemble sinon cela va être difficile de te proposer une solution pertinente.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Par défaut
    Bonjour,

    Merci pour ta réponse, je viens de la lire.

    Je vais essayer d'être plus clair :

    Je souhaite diviser ma première colonne A1 en plusieurs autres colonnes.

    Dans un premier temps, j'ai mis des séparateurs entre les différentes informations que je souhaite stocker dans des colonnes différentes :

    EX :

    toto_tel toto_nom toto_prenom

    -> toto_tel | toto_nom | toto_prenom


    Dans un second temps, je souhaite répartir ces informations dans 3 colonnes :
    tel | nom | prenom.

    Mon problème :

    Les informations sur les totos ne sont pas toujours complètes.
    -> toto_tel | toto_prenom

    Etant donné que j'utilise une division en colonnes grâce au séparateur "|", toutes les informations sont décalés, pour la raison que je viens d'expliquer.

    Ce que j'aimerai faire :

    Utiliser une requête qui envoie de manière "intelligente" les différentes informations dans les colonnes et laisse un une cellule vide lorsque l'information n'est pas disponible, pour éviter d'avoir un prénom dans la colonnes téléphone, par exemple.


    En espérant avoir été plus clair !

    Stan

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/07/2014, 16h57
  2. [VBA]Récupérer numéros de colonne et de lignes de la cellule active
    Par Subkill dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/04/2007, 20h28
  3. [VBA-E] dernière cellule d'une colonne
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/03/2007, 15h41
  4. [VBA-Excel]Supprimer une colonne entiere basee sur une cellule
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/10/2006, 22h08
  5. [VBA] Evenement Click Cellule
    Par kribot dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/01/2005, 09h47

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