Copier la sélection une ligne plus haut

Fermé
Louis - 8 août 2017 à 22:41
sxb18 Messages postés 6 Date d'inscription lundi 18 janvier 2016 Statut Membre Dernière intervention 9 août 2017 - 9 août 2017 à 14:12
Bonjour à toutes et à tous,

Je suis à la recherche d''un code macro permettant de faire en sorte que :

- A partir de la cellule sélectionné, les cellules se trouvant sur la même ligne et en dessous (toutes colonnes confondus) soit copier.
- Puis que toute cette masse soit copier une seule ligne au dessus.

Par exemple :

Si je sélectionne la cellule E4 et que j'active la macro, la ligne 4 et toutes celle situé en dessous monte d'un cran. (cela reviendrai à supprimer la ligne 3, mais seul un copier coller m'aiderai vraiment).
Si cela n'est pas claire, n'hésitez pas à demander plus de précision.

Je vous remercie de l'attention porté à ma requête et vous souhaite une bonne soirée !

Cordialement,
Louis
A voir également:

4 réponses

via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
9 août 2017 à 12:48
Bonjour Louis

Alors voilà une macro à mettre dans le worksheet de la feuille à traiter
(ALT+F11 pour ouvrir éditeur VBA - double-clic sur nom de la feuille dans l'arborescence - copier-coller la macro dans la page)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Ligne As Long
' derniere ligne remplie de la colonne A
Ligne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
' ligne actuelle
x = Target.Row
'demande confirmation
  If MsgBox("Confirmer le déplacement vers le haut des lignes " & x & " à " & Ligne, vbYesNo, "Demande de confirmation") = vbYes Then
   ' selection et copie
    Rows(x & ":" & Ligne).Select
    Rows(x & ":" & Ligne).Cut Destination:=Rows(x - 1 & ":" & Ligne - 1)
    Rows("4:8").Select
End If
End Sub


Une fois revenu sur la feuille la macro s'applique en faisant un double-clic dans une cellule, une confirmation du déplacement est demandé pour éviter une fausse manip

Cdlmnt
Via
1
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
8 août 2017 à 23:21
Bonsoir

Tu le dis toi même, cela revient à supprimer la ligne 3 alors pourquoi vouloir faire plus compliqué ? ou tu ne nous as pas tout dit ...

Cdlmnt
Via
0
sxb18 Messages postés 6 Date d'inscription lundi 18 janvier 2016 Statut Membre Dernière intervention 9 août 2017
9 août 2017 à 09:31
Bonjour Via,

Oui en effet, il manque la partie expliquant pourquoi la suppression n'est pas possible.

Description du fichier

Mon fichier est composé de deux feuilles (Extraction et Modèle)
Et une mise en forme uni ces deux feuilles. Celle-ci m'est en valeur les cellules de la feuille extraction qui diffèrent de la feuille modèle ( si Extraction!D20<>Modèle!D20 alors police rouge )

Problème

Quand mon extraction comporte une ligne supplémentaire toute celle situées en dessous deviennent rouge puisqu'elles sont décalés.
La suppression de la ligne supplémentaire impact la mise en forme car même celle-ci supprimer les lignes inférieures reste rouge.

Solution

Une fois que j'aurais sélection une cellule de la ligne inférieure à celle qui c'est ajouté et que j'aurais copier tout le bas de la feuille puis coller une ligne plus haut effaçant ainsi la ligne en trop, plus rien jusqu'à la prochaine ligne en trop sera rouge et ainsi de suite jusqu'à retrouver mon fichier modèle.


J'espère que la visualisation du problème est davantage plus claire, si ce n'est le cas, n'hésite/ez pas.

Merci à toi Via et bonne journée !

Cordialement
Louis
0
sxb18 Messages postés 6 Date d'inscription lundi 18 janvier 2016 Statut Membre Dernière intervention 9 août 2017
9 août 2017 à 14:12
Via,

Mieux que ce que j'imaginais !

Un grand merci, je vais pouvoir avancer maintenant.

passe une bonne après-midi,
Cordialement,
Louis
0