Atteindre une cellule vide

  • Initiateur de la discussion Initiateur de la discussion Deleted member 211067
  • 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 !

D

Deleted member 211067

Guest
Bonjour à toutes et à tous.

Je souhaite créer une macro sous VBA avec la problématique suivante :
j'ai sur la ligne 1 une ligne qui intègre des zones de saisie et des formules. Les zones de saisie sont vides. Cette ligne est un modèle.

sur les lignes en dessous, j'ai saisi les données et les calculs se font à partir du modèle de la ligne 1.
Au cours de mon travail, je m'apercois qu'il me manque une donnée, que je dois recopier la ligne modèle pour saisir la donnée manquante.

si je m'apercois qu'il faut inserer une ligne dans ces données, la macro doit pouvoir inserer et coller la ligne 1 à l'endroit où je me trouve dans le tableau.

j'ai pensé fabriquer la macro suivante (voir fichier ci joint) : (exemple ou je me situe sur la ligne 13 et souhaite inserer une ligne sur la ligne 12 pour y inserer le modèle de la ligne 1)

- inserer une ligne vide avant la ligne 13
- me rendre sur la ligne 1 et copier la ligne modèle (ligne 1)
- retourner sur la ligne vide (atteindre la ligne 12)
- coller la ligne 1.

Quelqu'un a t il la solution ?

Un grand merci pour votre contribution.

Bonne journée.

Olivier
 

Pièces jointes

Bonjour,

A tester
VB:
Sub Inserer()
  ' Si la cellule active est en colonne 1 (A)
    If ActiveCell.Column = 1 Then
       ' on insère deux cellules 
        ActiveCell.Resize(, 2).Insert xlShiftDown
        ' Copie de la cellule B1
        Range("B1").Copy
        ' Collage de la formule de b1 dans la nouvelle ligne
        ActiveCell.Offset(, 1).PasteSpecial xlPasteFormulas
    End If
End Sub

Bonne soirée
 
Bonjour,

A tester
VB:
Sub Inserer()
  ' Si la cellule active est en colonne 1 (A)
    If ActiveCell.Column = 1 Then
       ' on insère deux cellules
        ActiveCell.Resize(, 2).Insert xlShiftDown
        ' Copie de la cellule B1
        Range("B1").Copy
        ' Collage de la formule de b1 dans la nouvelle ligne
        ActiveCell.Offset(, 1).PasteSpecial xlPasteFormulas
    End If
End Sub

Bonne soirée
Merci Roblochon, cette requete réponds entièrement à ma demande.

Mes félicitations pour cette contribution.

Bonne soirée.

Olivier
 
Bonjour à tous,

La ligne 1 et le copier-coller sont bien inutiles, ceci entre directement la formule dans la cellule :
VB:
Sub Insérer()
With Cells(ActiveCell.Row, 1).Resize(, 2)
    .Insert xlDown
    .Cells(0, 2) = "=50*RC[-1]"
End With
End Sub
La cellule active peut être n'importe où.

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

Retour