Copier inserer lignes

Bonjour

J'ai réalisé un code VBA pour déverrouiller une protection de feuille, copier, insérer la ligne copier, vider des cellules et reverrouiller la feuille.

Il y a un problème dans le code car je voudrais que les fonctions, insérer ligne et vider des cellules, se réalise sur la ligne que je sélectionne n'importe ou dans la feuille

Je vous joint la capture d'écran du code

capture d ecran 2023 02 15 064435

Pourriez vous m'aider, svp

Bonjour

Là vous copiez la ligne 38 vers la ligne 36

Quelle est la règle entre le choix de ces deux lignes ?

Je voulais copier la ligne 26 et insérer la ligne copiée par rapport à ligne que j'aurais sélectionnée avant d'exécuter la macro et qui peut se trouver un peu n'importe ou dans le déroulement de la feuille.

Le problème dans mon code, c'est justement que ça insère la ligne uniquement en 36 et pas ailleurs

J'ai fait une erreur dans le message précédent la ligne copiée est bien la 38

Si vous insérez votre ligne 38 par exemple en ligne 36.
ce sera toujours la ligne 38 que vous allez sélectionner la fois suivante ?
Cette question parce que le fait de copier votre ligne 38 la première fois à la ligne 36, votre ligne 38 sera en position 39 la fois suivante...

La ligne que je copie sert de matrice avec les formules et les mises en formes,

j'ai peut-être pas utilisé la bonne méthode ?

La ligne que je copie sert de matrice avec les formules et les mises en formes,

Vous ne répondez pas à la question posée.

Donc si votre ligne "matrice" n'est pas toujours au même endroit je ne vois pas d'autres choix que de sélectionner cette ligne matrice via le click droite sur la ligne et choisir l'option copier

Ensuite exécuter le code après avoir choisi la cellule de destination au préalable.

La ligne que je copie ne bouge pas,

C'est l'emplacement ou j’insère la ligne copier qui change

Essayez ceci

Sub test()
Dim r As Integer

With ActiveSheet
    .Unprotect
    .Rows(38).Copy 'copie de la ligne matrice
    r = ActiveCell.Row 'cellule active
    .Rows(r).EntireRow.Insert
    Union(Range("B" & r & ":C" & r), Range("E" & r), Range("G" & r & ":H" & r), Range("J" & r & ":K" & r)).ClearContents
    .Protect
End With
End Sub

Pour exécuter, sélectionnez une cellule dans la ligne de destination puis exécuter le code

Le code copiera toujours la ligne 38 et collera les données dans la ligne où la cellule est sélectionnée.

C'est génial, ça fonctionne au top,

Merci beaucoup du coup de main

re

crdlt

Rechercher des sujets similaires à "copier inserer lignes"