Fonction VBA pour éclater BdD

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

  • Test.xls
    18.5 KB · Affichages: 61
  • Test.xls
    18.5 KB · Affichages: 64
  • Test.xls
    18.5 KB · Affichages: 61

pierrejean

XLDnaute Barbatruc
Re : Fonction VBA pour éclater BdD

bonjour beaf77

vois si cela te convient
 

Pièces jointes

  • fonction-vba-pour-eclater-bdd-test.xls
    34 KB · Affichages: 66
  • fonction-vba-pour-eclater-bdd-test.xls
    34 KB · Affichages: 66
  • fonction-vba-pour-eclater-bdd-test.xls
    34 KB · Affichages: 68

Minick

XLDnaute Impliqué
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

  • beaf77.xls
    31.5 KB · Affichages: 79

sousou

XLDnaute Barbatruc
Re : Fonction VBA pour éclater BdD

Bonjour beaff et pierrejean
Ci-joint une solution pour te mettre sur une voie!!!
Ce n'est pas vraiment finalisé, mais faut bien t'en laisser.
 

Pièces jointes

  • Test.xls
    37 KB · Affichages: 55
  • Test.xls
    37 KB · Affichages: 56
  • Test.xls
    37 KB · Affichages: 57

Spitnolan08

XLDnaute Barbatruc
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
 

beaf77

XLDnaute Junior
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
 

pierrejean

XLDnaute Barbatruc
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

  • fonction-vba-pour-eclater-bdd-test.xls
    35 KB · Affichages: 83
  • fonction-vba-pour-eclater-bdd-test.xls
    35 KB · Affichages: 79
  • fonction-vba-pour-eclater-bdd-test.xls
    35 KB · Affichages: 81

beaf77

XLDnaute Junior
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
 

beaf77

XLDnaute Junior
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
+
 

Spitnolan08

XLDnaute Barbatruc
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...:rolleyes:)
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

  • fonction-vba-pour-eclater-bdd-test-2.zip
    16.9 KB · Affichages: 31

pierrejean

XLDnaute Barbatruc
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

  • fonction-vba-pour-eclater-bdd-test.xls
    35.5 KB · Affichages: 56
  • fonction-vba-pour-eclater-bdd-test.xls
    35.5 KB · Affichages: 65
  • fonction-vba-pour-eclater-bdd-test.xls
    35.5 KB · Affichages: 58

Spitnolan08

XLDnaute Barbatruc
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

  • fonction-vba-pour-eclater-bdd-test-3.zip
    17 KB · Affichages: 31

Discussions similaires

Statistiques des forums

Discussions
312 299
Messages
2 086 996
Membres
103 423
dernier inscrit
Guyom GIL