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 :

Regroupement de champs


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Par défaut Regroupement de champs
    Bonjour à tous!!

    Je dois créer une macro (sous Excel avec VBA), et je dois regrouper des champs (des noms de famille) qui se situent tout le temps dans la première colonne A (sachant qu'il y a sur cette même colonne d'autres éléments d'inscrits hormis ces noms), mais qui ne se trouvent jamais sur les mêmes lignes d'une semaine sur l'autre. J'aimerai bien les rassembler en utilisant à chaque fois une seule et unique macro. Est-ce possible?

    J'ai déjà regardé dans les différents tutoriels et exemples mais je n'y ai pas trouvé mon bonheur, c'est donc pour cela que je fais appel à vos lumières.

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 915
    Par défaut
    Bonjour,

    Si j'ai bien compris tu dois faire un regrouppement par nom mais pour en faire quoi? Si je te pose la question c'est pour y voir un peu plus clair. Car sinon un simple tri sur tes colonnes doit suffir. Sinon peux tu nous mettre un ptit exemple de ton tableau et ce que tu a besoin d'en faire..

    Bon cou rage et bonne journée

  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
    Par défaut
    Donne-nous un exemple de ta base de données car l'explication que tu en donnes me ferait plutôt dresser les cheveux sur la tête (et comme il ne m'en reste plus que quatre, ça fait pas beau )

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Par défaut
    Bonjour à tous les deux et merci d'avoir répondu si vite!

    je vous donne en p-j une partie de mon fichier.

    En espérant vous aider
    Fichiers attachés Fichiers attachés

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Par défaut
    Je vous voudrais donc que ma macro me donne un fichier ayant cette mise en forme(voir pièce-jointe).

    J'ai pour but de faire en sorte que le fichier, où a été appliqué la macro (ici classeur2), soit utilisable directement sur un logiciel spécialisé dans les factures et fiches de paies. Voilà tout.

    Merci
    Fichiers attachés Fichiers attachés

  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
    Par défaut
    Si tu es certain que tous les noms commencent par "- " ou que toutes ces cellules sont en caractères gras, alors tu as une chance.
    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
    Sub test()
    dim cell as range, derlig as long, i as integer, nom as string
        derlig = 2
        worksheets("feuil1").activate
        for each Cell in worksheets("feuil1").range("a1:a" & range("A65536").end(xlUp).Row)
            if Left(Cell, 2) = "- " or Cell.Font.Bold = True Then
                Nom = Cell
                i = 1
                Do
                    if not Isempty(Cell.offset(i, 0)) then
                        worksheets("feuil2").range("A" & derlig) = Nom
                        worksheets("feuil2").range("B" & derlig & ":H" & derlig).value = Worksheets("feuil1").range(Cell.offset(i, 0).address & ":" & Cell.offset(i, 6).address).value
                        derlig = derlig + 1
                    end If
                    i = i + 1
                loop while Cell.offset(i, 0) <> Nom and Cell.offset(i, 0) <> ""
            end If
        next
    End sub
    A+

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Par défaut
    merci beaucoup à toi ouskel'n'or de m'avoir concocté ce code, mais cela ne fonctionnera pas avec ce fichier là (que vous fourni en pièce-jointe), vu que les éléments ne sont pas placés au même endroit(colonne et ligne).

    D'une semaine sur l'autre, mon fichier .xls sera toujours différent.

    Là est mon problème.

    merci
    Fichiers attachés Fichiers attachés
    • Type de fichier : xls c1.xls (27,5 Ko, 77 affichages)

  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
    Par défaut
    Alors l'exemple que tu as lié n'est pas un bon exemple.
    En outre, si tes données varient d'emplacement d'une semaine sur l'autre, alors je ne voir guère de solutions autre qu'adapter le code que je t'ai passé au coup par coup. VBA n'a pas de boule de cristal, ni moi non plus.
    En tout état de cause, je viens de tester et le code fais bien ce que tu demandes sur le fichier soumis.
    Pièce jointe 32459

  9. #9
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 915
    Par défaut
    Salut Pascal

    Pour ton fichier on est d'accord que la colonne A contiendra Tjs les Nom?

    et pour ce que disais ouskel'n'or au sujet de la mise en forme des nom est-ce correcte?

    Les nom sont-ils tjs avec un "-" et en gras car si c'est le cas il faut que tu enregistre le nomactuelle dans une variable et que pour chaque ligne qui suit tu regarde si il y a une mise en forme identique à la mise en forme NOM

    Si la mise en forme est différente c'est que ça correspond au info du nomactuelle sinon le nouveaux nom actuelle est celui de la ligne.

    G pas trop le temps de faire la macro mais tiens moi au courant

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Par défaut
    "En tout état de cause, je viens de tester et le code fais bien ce que tu demandes sur le fichier soumis."

    C'est exact et je t'en remercie encore.

    Donc il m'est impossible de réaliser mon souhait? Si tel est le cas, existe-t-il un autre langage autre que VBA pour fabriquer ma macro?

    Merci

  11. #11
    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
    Par défaut
    VBA est certainement le plus approprié pour faire ça. Le problème n'est pas le langage mais la structure des données. Si cette structure, peut-même le format changent d'un fichier à l'autre, alors ce n'est pas un autre langage qui va te la solution.
    Désolé mais si tu n'imposes pas un format de données au départ, je ne vois pas bien comment le code distinguerait la colonne nom de la colonne "Remarque" ("G" dans ton exemple).
    Tu peux monter une usine à gaz mais il y aura toujours un moment où tu devras la transformer en raffinerie de pétrole pour obtenir le résultat escompté.
    Bon courage dans tes recherches. Et bon courage à pascal
    Bonne soirée

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Par défaut
    C'est pas grave, encore merci pour tout.

    A bientot peut etre

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Par défaut
    désolé ouskel'n'or, je ne sais pas comment je me suis débrouillé, mais ton code marche comme il faut, je crois que mon expliquation laissée à désirer...

    Je l'ai testé sur une feuille complète, et ça a l'air de fonctionner, il ne me reste plus que des détails à régler (taille, police, gras, et espaces), je pense que ça devrait aller.

    Encore merci à tous pour vos conseils!

    A bientôt

Discussions similaires

  1. calcul de date sur un regroupement de champ en vb
    Par bazilus dans le forum Access
    Réponses: 1
    Dernier message: 06/10/2006, 13h29
  2. Regrouper des champs par mois
    Par nou366 dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/05/2006, 14h23
  3. [Access] Requête regroupement et champs supplémentaires
    Par olivier03 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/02/2006, 11h59
  4. regrouper plusieurs champ dans un seul en requete
    Par Nicko29 dans le forum Access
    Réponses: 12
    Dernier message: 07/09/2005, 18h29
  5. Regrouper des champs dans un GROUP BY
    Par kaiserazo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 11/07/2005, 08h43

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