Atteindre une cellule vide

Olivier GUILLOT

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

  • Classeur1.xlsm
    9.8 KB · Affichages: 7

Hasco

XLDnaute Barbatruc
Repose en paix
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
 

Olivier GUILLOT

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

job75

XLDnaute Barbatruc
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+
 

Discussions similaires

Réponses
4
Affichages
354
Réponses
21
Affichages
384

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry