XL 2016 Macro qui envoie les données classées dans une grille

riklho

XLDnaute Junior
Bonjour,

Cela fait des siècles que je n'ai pas fait de VBA et j'aurais besoin de me remettre en selle, cela dit j'ai une urgence à mon travail et j'aurais besoin de votre aide pour :

1/ envoyer les noms de la colonne E (dans l'onglet DATA) dans l'onglet grid en fonction de la note à la bonne place dans le tableau (dans la colonne H), de haut en bas dès la première cellule vide.

NB : Les données doivent être envoyées par ordre de niveau du plus grand au plus petit (le niveau est indiqué dans la colonne C de l'onglet GRID).

2/ Idéalement j'aimerais parfois pouvoir selectionner seulement quelques niveaux (ex : 24, 25, 26) et n'envoyer que ceux là dans la grille.

3 /J'ai créé un bouton ("launch") pour envoyer les données automatiquement et les copier vers la grille.

4 / Dans l'onglet "grid" j'ai créé un bouton ("powerpoint") pour envoyer la page vers un powerpoint (il n'existe pas, ça doit juste être un fichier neutre qui s'ouvre).

Merci infiniment pour votre aide !

Erika
 

Pièces jointes

  • fichier_template_review 2.xlsx
    55.5 KB · Affichages: 10

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir @riklho , le Forum

Et bien en espérant que l'algo que j'ai développé pour toi te remette dans le bain du VBA, Erika !

Je pense avoir respecté tout ton "cahier des charges" de 1 à 4, y compris l'ordre d'affichage dans Grid par Level...

Je te laisse découvrir et me dire ce que tu en penses...

Bien à toi, à vous
@+Thierry
 

Pièces jointes

  • XLD_riklho_Sort_and_Transpose_fichier_template_review 2_v00.xlsm
    74.2 KB · Affichages: 7

riklho

XLDnaute Junior
Bonsoir @riklho , le Forum

Et bien en espérant que l'algo que j'ai développé pour toi te remette dans le bain du VBA, Erika !

Je pense avoir respecté tout ton "cahier des charges" de 1 à 4, y compris l'ordre d'affichage dans Grid par Level...

Je te laisse découvrir et me dire ce que tu en penses...

Bien à toi, à vous
@+Thierry

Bonjour Thierry,

Je te remercie beaucoup c'est juste parfait. Je vais étudier tout cela pour pouvoir moi aussi progresser car j'ai vraiment envie de m'y remettre pour automatiser un bon nombre de fichiers pour mon travail. Pour ta question dans le fichier, il s'agit de note de performance, je travaille dans les ressources humaines.

Pour le powerpoint, je ne comprends pas encore bien le principe.
J'ai créé un powerpoint nommé MyPowerpoint dans mes documents mais j'avoue que je n'ai jamais fait cela, je pense d'ailleurs que je dois cocher quelque chose dans excel dans mes souvenirs pour intégration avec une autre app.

Merci encore, ta réponse rapide m'a déjà énormément aidée !

Erika
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonsoir Erika


Pour la Question "Kesako" c'est pour être sûr que je ne râtais pas quelque chose pour mon Algo* qui ne travaille QUE sur Data et Sur Grid...

Pour ce qui est de Powerpoint regarde le Module2, j'ai mis un exemple en plus du MsgBox...

Bonne remise en selle ;)
@+Thierry

* EDIT pour mon Algo !!! Pas mon Aldo... (Macionne) LoL !
 
Dernière édition:

riklho

XLDnaute Junior
Re Bonsoir Thierry,

Non tu ne ratais rien, c'est juste parfait ! Pour le powerpoint c'est ok je commence à comprendre :)
Par contre petite chose j'ai besoin de classer par ordre décroissant les niveaux, ex : 28 plus haut que 26 dans la grille et je n'arrive pas à modifier toutes mes tentatives ont échoué même si je suis sure pouvoir y arriver. Si ton âme charitable a encore quelques secondes ce serait top !
Oui je me remets doucement en selle, il va par contre me falloir de nombreuses heures , excel est plutôt très maitrisé mais pour VBA je rame … c'est aussi une question de connaissance du code que je n'ai pas (plus). Je n'ai plus refait de code depuis 12 ans je crois ..
MErci encore et bonne fin de we !
Erika
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Erika


Pour :
j'ai besoin de classer par ordre décroissant les niveaux, ex : 28 plus haut que 26 dans la grille

C'est tout bête et tout simple !!!

Pour la ListBox :
VB:
    For i = 1 To ColLev.Count - 1  'tri alpha de la ComboBox
        For j = i + 1 To ColLev.Count
            If ColLev(i) > ColLev(j) Then
                vTemp = ColLev(j)
                ColLev.Remove j
                ColLev.Add vTemp, , i
            End If
        Next j
    Next i

Change : If ColLev(i) < ColLev(j) Then

Et pour GRID :
VB:
  For x = LBound(TabData, 1) To UBound(TabData, 1)
    For y = x To UBound(TabData, 1)
      If UCase(TabData(y, 1)) < UCase(TabData(x, 1)) Then
        TmpZ1 = TabData(x, 1): TmpZ2 = TabData(x, 2): TmpZ3 = TabData(x, 3): TmpZ4 = TabData(x, 4): TmpZ5 = TabData(x, 5): TmpZ6 = TabData(x, 6)
        TmpA1 = TabData(y, 1): TmpA2 = TabData(y, 2): TmpA3 = TabData(y, 3): TmpA4 = TabData(y, 4): TmpA5 = TabData(y, 5): TmpA6 = TabData(y, 6)
      
        TabData(x, 1) = TmpA1: TabData(x, 2) = TmpA2: TabData(x, 3) = TmpA3: TabData(x, 4) = TmpA4: TabData(x, 5) = TmpA5: TabData(x, 6) = TmpA6
        TabData(y, 1) = TmpZ1: TabData(y, 2) = TmpZ2: TabData(y, 3) = TmpZ3: TabData(y, 4) = TmpZ4: TabData(y, 5) = TmpZ5: TabData(y, 6) = TmpZ6
      End If
     Next y
  Next x

Change: If UCase(TabData(y, 1)) > UCase(TabData(x, 1)) Then

Oui douze ans ça fait longtemps, mais ce qui est rassurant pour toi, le VBA 6 n'a pas changé depuis et c'est toujours la même base pour VBA, mis à part quelques nouvelles proriétés des nouvelles versions d'Excel qui sont accessibles, rien de bien nouveau !

Le VBA C'est comme le VLO ca ne s'oublie pas ...

Bonne fin de W/E aussi
@+Thierry

PS VLO = Vélo :p
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 312
Membres
102 860
dernier inscrit
fredo67