XL 2010 Aide sur un fichier de plannification

PEagle

XLDnaute Nouveau
Bonjour,
Je fais suite à un autre sujet que j'avais posté qui n'était que la partie immergée de l'iceberg...

Je cherche à faire un fichier excel de suivi de l'activité et de la plannification du personnel.
Pour cela, j'ai un format et je dois avoir différentes données sur deux lignes pour le même personnel et je dois quand même faire du tri par ordre alphabétique.

Voici la trame que prendra le fichier (l'ordinateur internet du travail ne possède que excel 2003).

L'activité est déroulée sur deux lignes, la première comptant sur une activitée relatée par codes, la deuxième est libre (notamment en fusion). La colonne B est celle sur laquelle je veux faire le tri.

Voici donc mon problème, je ne peux pas utiliser la fonction de tri automatique d'excel car mes lignes sont fusionnées par groupe de deux et que, plus loin vers la droite, les colonnes peuvent l'être et de manière indépendante les unes des autres.

Je cherche donc un moyen de mettre en ordre alphabétique sans avoir à repenser tout mon tableau, quitte à passer par une macro VBA.

Merci pour les idées...

P.-S. La version de excel sur laquelle le fichier sera implémentée est bien excel 2010.
 

Pièces jointes

  • exemple.xls
    15.5 KB · Affichages: 74

PEagle

XLDnaute Nouveau
Je vois que ma question n'a pas de succès du tout...
En continuant mes recherches, j'ai pu trouver des réponses partielles proposant de séparer, insérer des données puis de refusionner les cellules. Ceci demande un travail colossal, en particulier parce que toutes n'ont pas la même taille (et c'est une partie de mon problème).

Je cherche donc à créer une macro de tri qui trierait sur les lignes impaires et copierai la ligne impaire + la ligne paire à l'endroit voulu.

J'imagine deux solutions en algorithme:
Solution 1:
- L'algorithme prends la ligne x (première ligne), et la valeur de la cellule (qui appelle la valeur d'un autre fichier excel)
- Elle copie cette ligne et sa suivante dans une nouvelle feuille
- Elle choisit la ligne x+2
- Elle compare la ligne x+2 aux lignes de la nouvelle feuille
- Elle l'insère entre les deux lignes adéquates
- Répétition jusqu'à ce que toutes les lignes aient été faites.
- Fin de la macro.

Solution 2:
- Extraction de toutes les lignes impaires dans une nouvelle feuille de calcul
- Tri des lignes par tri automatique
- Insertion des lignes paires via un algorithme permettant de comparer des valeurs (référence unique dans une colonne)
- Fin de la macro

Est-ce que quelqu'un aurait une idée de comment je puisse faire ça, si c'est réalisable ?

Merci par avance à ceux qui y prendront le temps de jeter un œil à mon problème.
 

PEagle

XLDnaute Nouveau
Pour ceux qui auraient un problème similaire, voici le code auquel je suis arrivé :
Code:
Option Explicit
Sub trialpha()

Dim i, j, ld, colonne, ligne_de_debut, ligne_de_fin As Integer

    'ld ligne débutant le tri
   
colonne = 4 'Correspond à la colonne D
ligne_de_debut = 7
ligne_de_fin = 127

For i = ligne_de_debut To ligne_de_fin Step 2
    j = i
    If StrComp(Cells(j + 2, colonne), Cells(j, colonne), vbTextCompare) < 1 And j >= ligne_de_debut And Not IsEmpty(Cells(j + 2, colonne)) Then
        Rows(j + 2 & ":" & j + 3).Select
        Selection.Cut
        ld = j
        While (StrComp(Cells(ld + 2, colonne), Cells(j, colonne), vbTextCompare) < 1 And j >= ligne_de_debut)
            'MsgBox (j & "-" & StrComp(Cells(ld + 2, colonne), Cells(j, colonne), vbTextCompare) & "-" & Cells(ld + 2, colonne) & "-" & Cells(j, colonne))
            j = j - 2
        Wend
        Rows(j + 2).Select
        Selection.Insert Shift:=xlDown
    End If
Next

MsgBox prompt:="effectué", Title:="done"

Ce n'est peut-être pas très élégant, mais ça fonctionne...
 

Discussions similaires

Réponses
8
Affichages
406

Membres actuellement en ligne

Statistiques des forums

Discussions
312 412
Messages
2 088 196
Membres
103 763
dernier inscrit
p.michaux