VBA insertion automatique de lignes en fonction d'une valeur saisie

polska_diane

XLDnaute Nouveau
Bonjour à tous,
je souhaite saisir dans une cellule un chiffre et qu'automatiquement des lignes s'insèrent en fonction du nombre saisie mais que tu texte s’insère également en même temps. Le mieux est de consulter ma pièce jointe car c'est pas évident de l'expliquer ! Je suis passé par un CommandButton mais peut être il y a une autre solution?
De plus est -il possible de fermer le classeur et de réinitialiser la feuille c'est à dire supprimer les lignes insérées?
Merci de votre aide.
Bonne journée à tous.
 

Pièces jointes

  • Classeur1.xlsx
    20.1 KB · Affichages: 52
  • Classeur1.xlsx
    20.1 KB · Affichages: 45

thebenoit59

XLDnaute Accro
Re : VBA insertion automatique de lignes en fonction d'une valeur saisie

Bonjour Diane ?

Je te propose une réponse.
En espérant avoir bien compris le sujet.
 

Pièces jointes

  • polska_diane - VBA insertion automatique de lignes en fonction d'une valeur saisie.xlsm
    26.5 KB · Affichages: 44

polska_diane

XLDnaute Nouveau
Re : VBA insertion automatique de lignes en fonction d'une valeur saisie

Merci pour votre réponse Benoit,
Cependant j'ai essayé de le retranscrire dans mon fichier mais ça ne fonctionne pas et je ne trouve pas mon erreur, pourriez vous m'aider?

D'avance Merci.
Diane
 

Pièces jointes

  • Classeur2test.xlsx
    14.2 KB · Affichages: 48
  • Classeur2test.xlsx
    14.2 KB · Affichages: 48

polska_diane

XLDnaute Nouveau
Re : VBA insertion automatique de lignes en fonction d'une valeur saisie

Je viens de comprendre mon erreur je n’étais pas sur la première feuille, j'ai donc décalé mes onglets et c''est bon. Cependant comment puis je faire pour commencer la numérotation des bâtiments par 1 et non par 11?

Code:
Sub Insererlignes()
Dim i As Integer, n As Integer

With Sheets(1)
'On vérifie si la valeur en B9 est bien numérique
If Not IsNumeric(.[b9]) Then MsgBox "Entrer une valeur numérique en B9": Exit Sub
    'On enregistre la valeur dans une variable "n"
    n = .[b9]
    'On insère le nombre de ligne au dessus de la quatrième ligne
    .Rows(11).Resize(n).Insert Shift:=xlDown
        'On boucle les valeurs en colonne A
        For i = 11 To 10 + n
            .Cells(i, 1).Value = "Bâtiment " & i
        Next i
            'On enregistre la plage de cellule
            ActiveWorkbook.Names.Add Name:="Nbre_logt", RefersTo:=.Cells(11, 2).Resize(n)
End With
End Sub
tableauxls.png
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16