permuter deux lignes

sboub

XLDnaute Nouveau
Bonsoir,
J'ai besoin de votre aide. je joins un exemple pour que vous comprenez mieux ma demande.
Voici un roulement dans mon métier de conducteur. Chaque semaine nous effectuons des services.
J'ai crée 3 feuilles dans excel. La première nommée feuille qui représente ce qu'on fait tout le long de l'année. Les deux autres il y a les ingrédients qui permet de remplir la 1ere feuille.
Ce que j'aimerai c'est d'inverser comme dans l'exemple la ligne 10 et la ligne 13 de la feuille semaine pour que dans la feuille 1 le changement se fasse directement. J'ai dejà trouvé le systeme de copier coller sur une autre feuille excel vierge mais est ce qu'il n'existerait pas une formule plus rapide??
Merci d'avance pour votre aide
 

Pièces jointes

  • exemple B.xls
    62.5 KB · Affichages: 67
  • exemple B.xls
    62.5 KB · Affichages: 67
  • exemple B.xls
    62.5 KB · Affichages: 68

vgendron

XLDnaute Barbatruc
Re : permuter deux lignes

Bonjour,

je me souviens m'être fait, il y a longtemps une macro qui inversait deux lignes..
à tester et sans doute adapter??
Code:
Sub echange()
On Error GoTo fin0
rep = 6
MsgBox ("pour sélectionner les lignes concernées par le déplacement, cliquez simplement sur une ou plusieurs cellules de la ou des ligne")
While (rep = 6)
    Set init = Application.InputBox("ligne source", Type:=8)
    Set final = Application.InputBox("ligne destination", Type:=8)
    Source = init.Rows
    Destination = final.Row
    
    init.EntireRow.Select
    
    Selection.Cut
    'Rows(Source).Cut
    Rows(Destination).Insert Shift:=xlDown
    
    rep = MsgBox("continuez?", vbYesNo)
    
Wend

fin0:
If rep = 6 Then MsgBox ("opération impossible")
End Sub
 

vgendron

XLDnaute Barbatruc
Re : permuter deux lignes

avec le code modifié. en fait.. ma macro initial ne faisait que déplacer une ligne "source" vers une nouvelle destination

la. ca inverse bien les deux lignes
Code:
Sub echange()
On Error GoTo fin0
rep = 6
MsgBox ("pour sélectionner les lignes concernées par le déplacement, cliquez simplement sur une ou plusieurs cellules de la ou des ligne")
While (rep = 6)
    Set init = Application.InputBox("ligne source", Type:=8)
    Set Final = Application.InputBox("ligne destination", Type:=8)
    Source = init.Row
    Destination = Final.Row
    
    init.EntireRow.Select
    
    Selection.Cut
    'Rows(Source).Cut
    Rows(Destination).Insert shift:=xlDown
    Final.EntireRow.Select
    Selection.Cut
    Rows(Source).Insert shift:=xlDown
    rep = MsgBox("continuez?", vbYesNo)
    
Wend

fin0:
If rep = 6 Then MsgBox ("opération impossible")
End Sub
 

vgendron

XLDnaute Barbatruc
Re : permuter deux lignes

Re,

ha ok.. si je comprend bien. les macros et toi... ;-) bon on va essayer d'être plus clair

à mon avis l'échange de ligne ne peut pas se faire autrement que par Macro (pas de formule pour ce que tu veux)
je poste ton fichier avec la macro intégrée: tu peux lancer en cliquant sur le bouton "Echanger Lignes"

pour aller voir le code de la macro: fais: Alt+ F11,
dans l'explorateur à gauche, ouvre le module1 et tu peux ainsi voir le code que j'ai commenté (lignes qui apparaissent en vert) pour t'expliquer ligne par ligne ce que le code effectue.

Maintenant,
1) tu souhaites que le feuil1 se mette à jour automatiquement... je ne comprend pas ce qu'elle est censée faire..
quand je regarde la feuille actuelle. je n'arrive pas à comprendre comment elle est construite. il y a des formules qui ne se suivent pas: en B2: =semaine!A13
en B5=semaine!A6 (alors que je m'attendais à A14????)

apparemment la feuille1 a été triée.. mais comment?

2) et dans tes tableaux, il y a peu, voire aucun titre de colonne, ca aiderait à la compréhension

Voila. en attendant plus d'info
 

Pièces jointes

  • exemple B.xlsm
    32 KB · Affichages: 85

Discussions similaires

Réponses
10
Affichages
323

Statistiques des forums

Discussions
312 504
Messages
2 089 070
Membres
104 018
dernier inscrit
Mzghal