Fonction VBA pour éclater BdD

  • Initiateur de la discussion Initiateur de la discussion beaf77
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

beaf77

XLDnaute Junior
Bonjour à tous,


Mes compétences étant plus que très limitées en VBA et ne trouvant pas d'autres alternatives, je me permets de soumettre mon problème sur le forum en espérant que quelqu'un puisse m'apporter une solution.
Rien de sorcier pour celui qui pratique le VBA je pense!!!

J'explique mon problème :
J'ai une BdD sur une feuille Excel que je souhaiterai pouvoir éclater automatiquement via un bouton macro dès lors qu'il y a changement de code (ville dans l'exemple) dans la première colonne.

J'espère avoir été clair dans mes explications.
J'ai joins un fichier pour exemple

En vous remerciant de votre aide si précieuse, bonne journée à tous & à toutes...
 

Pièces jointes

Re : Fonction VBA pour éclater BdD

Salut,

Une solution en piece jointe.
mais je n'ai pas mi l'eclatement sur la modification de la colonne A
car si tu saisis la ville en 1er tu n'auras pas les autres colonnes de renseignes.

++
 

Pièces jointes

Re : Fonction VBA pour éclater BdD

Bonjour à tous,
Je vois qu'il y a pas mal de monde et Pierrejean (c'est le seul dont j'ai regardé très rapidement la solution...) a fait un bon travail (comme d'hab...). Donc je voudrais juste indiquer qu'il vaut mieux ajouter au début de son code celui ci pour être certain que les données d'une même ville sont contigues. Si j'ai bien compris le fonctionnement de son code...
Code:
Dim der As Integer
'***1/ Tri des données pour les classer
With Sheets("Feuil1")
    der = .Range("A65000").End(xluprow).Row

    .Range("A2:F" & der).Select
    Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End With
Cordialement
 
Re : Fonction VBA pour éclater BdD

Merci à tous pour vos solutions
Celle de pierrejean est très abouti et correspond exactement à ce que je recherchais...

J'ai récupéré le fichier et je vais tenter de le décrypter pour comprendre comment ça marche car cela m'intéresse vivement...

En vous remerciant encore tous pour vos solutions, bon appétit
Je reviendrai peut etre vers vous si j'ai des difficultés pour déchiffrer la macro

Bonne journée
@ CDT
 
Re : Fonction VBA pour éclater BdD

bonjour

voila une version commentée

si tu as besoin d'explication complementaire n'hesite pas a revenir

@ spitnolan

le tri n'est pas necessaire puisque le nom de la feuille ou transferer les données est pris en compte dans chaque ligne

nb: j'ai tout de même fait un test pour m'en assurer
 

Pièces jointes

Re : Fonction VBA pour éclater BdD

Merci pierrejean car j'avoue que je viens de tester à essayer d'adapter la formule sur d'autres fichiers et je ne comprenais pas tout puisque cela ne marchait pas...

M'en vais voir tout de suite si de part le nouveau fichier je trouve les réponses à mes questions...


cdt
 
Re : Fonction VBA pour éclater BdD

Avec les explications, je comprends déjà un peu plus

M'enfin, j'ai réussi à adapter la formule de pierrejean pour l'ensemble des BdD que je travaille!!! 🙂

Je comprends l'articulation; maintenant reste à appréhender l'écriture avec ses Sub, Dim, ...
A ce propos, avez vous des conseils pour apprendre de façon ludique?
Bien entendu je pourrai commencer par des choses simples avec les macro automatiques...

Bref il faut vraiment que je me lance dans la compréhension du vba car je suis sur que ca décuple les possibilités qu'offre Excel

Mille merci Pierrejean et bonne journée encore
+
 
Re : Fonction VBA pour éclater BdD

Re,

Autant pour moi Pierrejean, j'avais survolé ton code...
Je propose, cependant une petit complément qui me parait indispensable celui là... (Enfin je crois...🙄)
Je n'ai pas voulu (la flemme) reprendre ton code en détail. J'ai donc ajouté un petit module pour traiter les doublons de façon très basique. Mais tu pourras surement faire de façon beaucoup plus élégante à partir de tes lignes.

Cela permet de lancer la macro autant de fois que l'on veut sans avoir une liste qui s'allonge à l'infini avec des redondances et évite aussi de reprendre des doublons déjà présents dans la liste initiale.

Cordialement
 

Pièces jointes

Re : Fonction VBA pour éclater BdD

bonjour

Merci Spitnolan pour avoir repéré cet oubli

voila ma version (je n'ai pas encore regardé la tienne)
 

Pièces jointes

Re : Fonction VBA pour éclater BdD

Re,

suite à un message de Pierrejean, une petite modification de ma version qui peut éviter des suppressions de lignes inopinées.
Une précision : on peut indifféremment mettre dans la Sub Doublons :
Code:
For i = 1 To Sheets.Count
ou
Code:
For i = 1 To Sheets.Count-1
Si la structure du classeur réel est la même que celle transmise (i.e. s'il n'y a pas de feuilles autres que la BDD initiale et les Feuilles crées par l'application. L'ordre des feuilles étant sans incidence avec la première version ci dessus)

Cordialement
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour