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 :

VB/VBA pour extraction de données d'une feuille vers une autre avec formatage des caractères


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 22
    Par défaut VB/VBA pour extraction de données d'une feuille vers une autre avec formatage des caractères
    Au secours, y aurait il une âme charitable ?

    Voilà je suis technicien informatique dans un centre de formation et notre secrétariat bute sur un problème que je n’arrive pas à résoudre (même si ce n’est pas mon domaine), car voilà, je ne connaît rien ou si peu à Excel.
    Pour faire simple, voilà le problème :
    On reçoit de diverses sociétés, des listes d’élèves d’une part et des listes de professeurs d’autre part.
    A partir de ces infos, on remplit un tableau (souvent par copier coller de ce qui nous a été envoyé) qui regroupes toutes les infos (nécessaires ou non à NOTRE travail). Au final on a autant de lignes que d’élèves (nom, prénoms et date de naissance, etc) et les professeurs qui apparaissent forcément en doublons : 1 prof pour 12 élèves en moyenne,
    Ce tableau est sur une feuille nommée « Stage »
    A partir de ce tableau, je dois extraire les nom, prénom et date de naissance des élèves et prof. (dans un format bien particulier : pas d’espace, ni de é, à, ç… et date sur 6 chiffres) vers une autre feuille nommé « Bio » à 3 colonnes seulement

    Pour le moment, je fais les opérations suivantes :

    Copie des noms des élèves Stage/Colonne J et collage en Bio/colonne A
    Copie des prénoms des élèves Stage/Colonne K et collage en Bio/colonne B
    Copie des date de naissance des élèves Stage/Colonne L et collage en Bio/colonne C
    Copie des noms des prof. Stage/Colonne S et collage en Bio/colonne A
    Copie des prénoms des prof. Stage/Colonne T et collage en Bio/colonne B
    Copie des date de naissance des prof. Stage/Colonne V et collage en Bio/colonne C
    → On retrouve tous les nom en A, tous les prénoms en B et les date de naissances en C
    A partir de ces 3 colonnes, je crée 3 autres colonnes (E ,F,G) ou je colle les ABC en appliquant des formules pour supprimer les éventuels espaces avant (SUPPRESPACE) je passe en minuscule et j’applique une fonction (ALT+F11) qui remplace les é par e etc.
    Et je me retrouve au final avec :
    ** certaines lignes vides si la salle de 12 élèves n’en héberge que 10
    ** 12 fois le nom du professeurs
    ** des dates mal formatées que le SUPPRESPACE transforme en chiffre etc…

    Est il possible en VB (VBA ?) de :
    - Tant que la Stage/colonne J n’est pas vide de copier les valeurs Stage Col J vers Bio/colonne A, Stage/Col K vers Bio/colonne B et Stage/Col L vers Bio/colonne C
    - Puis, mais cette fois en testant les doublons (qui peuvent ne pas se suivre) de copier les valeurs de stage/col S vers Bio/colonne A, Stage/Col T vers Bio/colonne B et Stage/Col U vers Bio/colonne C
    - Remplacer dans Bio Colonne A, B les caractères accentués par des lettres sans accent
    - Supprimer les espaces avant après (mais pas l’espace dans le nom, ex Le Bon – le bon) dans Bio Colonne A, B les caractères accentuées par des lettres sans accent
    - Supprimer les ou les espaces devant la date de naissance et lui imposer le format jj/mm/aaaa sans retrouver une valeur style 256487.
    Ouf.

    En tout cas grand merci à tous même à ceux qui ont décroché à la 5eme ligne.
    Je joue un peu au jeu de la patate chaude, mais je suis le bec dans l’eau devant excelle et cette manip hebdomadaire me gonfle de plus en plus…
    Bon courage à ceux qui décide de plancher.

  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,

    Mets un classeur en pièce jointe sans données confidentielles (remplace les noms). Ca sera plus facile pour tester.

  3. #3
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 22
    Par défaut Le fichier joint
    Bonjour,
    Je pensais l'avoir joint : erreur, Mea Culpa.
    En plus je découvre le forum...
    Voici le fichier (nom changé bien sur). https://dl.dropboxusercontent.com/u/...de%20stage.xls

    Pour infos j'ai supprimé quelques colonnes mais je ne pense pas que cela impacte.
    En tout cas, quelque soit le résultat, un grand merci à vous de vous être (pour le moment) simplement sur mon problème
    Bien cordialement

  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
    Voici le début de la macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Copie()
        Dim Plage As Range, C As Range
        With Sheets("Stage")        Set Plage = .Range("H1", .Cells(.Rows.Count, 10).End(xlUp))
        End With
        With Sheets("Bio")
            Plage.Copy .[A1]
            .[C:C].NumberFormat = "dd/mm/yy"
            For Each C In .Range("A1", .Cells(.Rows.Count, 2).End(xlUp))
                C.Value = Application.Trim(C.Value)
                C.Value = LCase(C.Value)
                C.Value = Sans_accents(C)
            Next C
        End With
    End Sub
    Je n'ai pas compris :

    - Puis, mais cette fois en testant les doublons (qui peuvent ne pas se suivre) de copier les valeurs de stage/col S vers Bio/colonne A, Stage/Col T vers Bio/colonne B et Stage/Col U vers Bio/colonne C
    Est-ce que tu es sûr de la colonne et est-ce que tu peux donner un exemple ?

  5. #5
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 22
    Par défaut
    Tout d’abord, merci de m’aider.

    Ce que je veux dire c’est que dans la feuille Bio, après la copie des colonnes JKL, puis STV de la feuille Stage, on a maintenant, dans la feuille Bio 3 colonnes ABC (Nom Prénom DateNaissance).
    ==> Cette colonne A reprend les noms (élèves, puis prof.) : généralement avec les élèves il n’y a pas de doublon (association Nom Prénom DateNaissance) car le même élève ne peut être inscrit qu’une seule fois par semaine.
    ==> Mais dans la colonne S, il y a plusieurs fois de suite le même nom de prof (autant de fois qu’il y a d’élèves dans cette salle, car à chaque ligne de l’élève il y a le nom du prof.) : en regardant la colonne S, tu te rends compte que les noms des profs apparaissent sur plusieurs lignes de suite.

    Voir sur ce fichier joint (v2) dans lequel j’ai surligné les cases dont je te parle : https://dl.dropboxusercontent.com/u/...stage%20V2.xls

    Au final je souhaiterais que les professeurs n’apparaissent qu’une seule fois (par prof).

    Pour te donner une idée du pourquoi de tout ce travail, ce fichier BIO est en fait destiné à être exporté en CSV, puis remis à notre service des accès au site (autorisation de passage).
    Je me rends compte que par email, c’est bien plus hardu à expliquer par écrit que de vive voix Ha Ha

  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
    Vérifie les encolonnements. Tout à l'air décalé.

Discussions similaires

  1. Réponses: 10
    Dernier message: 03/07/2015, 11h55
  2. Déplacer une image d'une feuille vers une autre dans un fichier Excel
    Par helenaide dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/10/2011, 14h27
  3. [XL-2007] copier une ligne d'une feuille vers une autre feuille
    Par scarfunk dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/05/2010, 22h18
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Macro Copier données d'une feuille vers une feuille cible
    Par La Zélie dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/09/2008, 10h01

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