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