Transférer une ligne

patrick60

XLDnaute Nouveau
Bonjour à toutes et à tous
Voilà plus de 3 jours que je galère sur un problème et je fais appel à vous pour avoir enfin une réponse. Vous comprendrez mieux les explications dans mon fichier joint. En gros, dans un classeur, je souhaite transférer une ligne dans un autre emplacement que j'aurais choisi. Sur ce, pas de problème lorsque je transfère vers le bas, mais lorsque je transfère vers le haut, j'ai un problème de décalage de ligne.
Si je pouvais avoir un peu d'aide.
Merci
 

Pièces jointes

  • Classeur1.zip
    38 KB · Affichages: 46
  • Classeur1.zip
    38 KB · Affichages: 41
  • Classeur1.zip
    38 KB · Affichages: 45

Efgé

XLDnaute Barbatruc
Re : Transférer une ligne

Bonjour patrick60,
en dehors du fait que je ne comprend pas le problème, je vous propose de remplacer vos 54 lignes "color index" par :
Code:
Sheets("duo").Range("C" & L & ":T" & L).Interior.ColorIndex = 8
Pour le reste, quel est le souci avec les insertions ?
Cordialement
 

patrick60

XLDnaute Nouveau
Re : Transférer une ligne

Bonjour patrick60,
en dehors du fait que je ne comprend pas le problème, je vous propose de remplacer vos 54 lignes "color index" par :
Code:
Sheets("duo").Range("C" & L & ":T" & L).Interior.ColorIndex = 8
Pour le reste, quel est le souci avec les insertions ?
Cordialement

Tout d'abord merci pour cette intervention

Mon problème est que lorsque je valide mon USF pour transférer une ligne plus bas de celle où je me situe, tout fonctionne, mais lorsque je transfère une ligne plus haut de celle où je me situe, il y a un décalage de ligne.
Il faudrait que vous essayez les macros pour comprendre.
Merci encore
 

patrick60

XLDnaute Nouveau
Re : Transférer une ligne

Bonjour patrick60,
en dehors du fait que je ne comprend pas le problème, je vous propose de remplacer vos 54 lignes "color index" par :
Code:
Sheets("duo").Range("C" & L & ":T" & L).Interior.ColorIndex = 8
Pour le reste, quel est le souci avec les insertions ?
Cordialement

Si vous me permettez encore
Je cherche à écrire en vba ceci:
Si le numéro de la ligne où je me situe est supérieur à la textbox(numéro de la ligne où je veux transférer), alors faire appel à la macro "ReportDonnées"
Si le numéro de la ligne où je me situe est inférieur à la textbox(numéro de la ligne où je veux transférer), alors faire appel à la macro "ReportDonnées2"

Merci
 

Efgé

XLDnaute Barbatruc
Re : Transférer une ligne

Re
J'ai bien entendu testé vos macros.
Mais je pense qu'il est préférable de comprendre le souci rencontré (et faire une seule macro) plutot que dispatcher plusieurs solutions.
Pouvez vous mettre un exemple en précisant à la main : là ce n'est pas bon car la valeur dvrait être... etc....
D'autre part il semble que dans votre premier exemple il manque des morceaux de code (Les deux macros ont des différences qui ne s'expliquent pas par le "avant / Après").
Cordialement
 

Efgé

XLDnaute Barbatruc
Re : Transférer une ligne

Re
essayez ceci, a la place de ReportDonnees et dites quels sont les problèmes qui persistent.
Code:
Sub inser_ligne()
Dim Li As Long
Li = ActiveCell.Row
Rows(Li & ":" & Li).Copy
Rows(L & ":" & L).Insert Shift:=xlDown
Sheets("duo").Range("C" & L & ":T" & L).Interior.ColorIndex = 8
Application.CutCopyMode = False
End Sub

Cordialement
 

patrick60

XLDnaute Nouveau
Re : Transférer une ligne

Re
essayez ceci, a la place de ReportDonnees et dites quels sont les problèmes qui persistent.
Code:
Sub inser_ligne()
Dim Li As Long
Li = ActiveCell.Row
Rows(Li & ":" & Li).Copy
Rows(L & ":" & L).Insert Shift:=xlDown
Sheets("duo").Range("C" & L & ":T" & L).Interior.ColorIndex = 8
Application.CutCopyMode = False
End Sub

Cordialement

J'étais en train de modifier mon fichier pour que vous compreniez mon problème, donc je n'ai pas essayé la macro, je le joins et j'essaie ensuite
Merci encore
 

Pièces jointes

  • Classeur1.zip
    37.7 KB · Affichages: 34
  • Classeur1.zip
    37.7 KB · Affichages: 33
  • Classeur1.zip
    37.7 KB · Affichages: 34

patrick60

XLDnaute Nouveau
Re : Transférer une ligne

Oui en effet la macro fonctionne dans les 2 sens. C'est super.
J'en profite, y a t'il une possibilité que je garde une partie de ma macro "ReportDonnée" surtout pour mettre à 0 la ligne après transfert.

Merci encore
 

Efgé

XLDnaute Barbatruc
Re : Transférer une ligne

Re
Une version pour remetre les cellules de M à L à 0:
Code:
Sub inser_ligne()
Dim C As Range
Dim Li As Long
Li = ActiveCell.Row
Rows(Li & ":" & Li).Copy
Rows(L & ":" & L).Insert Shift:=xlDown
Sheets("duo").Range("C" & L & ":T" & L).Interior.ColorIndex = 8
For Each C In Range("M" & L & ":T" & L)
    C.Value = 0
Next C
Application.CutCopyMode = False
End Sub
Cordialement
 

Discussions similaires

Réponses
9
Affichages
235

Statistiques des forums

Discussions
312 836
Messages
2 092 652
Membres
105 479
dernier inscrit
chaussadas.renaud