Transférer une ligne

  • Initiateur de la discussion Initiateur de la discussion patrick60
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

patrick60

Guest
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

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

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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
19
Affichages
708
Réponses
4
Affichages
227
  • Question Question
Microsoft 365 couleur et ligne
Réponses
6
Affichages
293
Retour