Empêcher l’insertion de lignes dans des lignes spécifiques

micie1509

XLDnaute Junior
Bonjour,

J'ai des macros pour insérer des lignes, mais j'aimerais qu'il ne soit pas possible d'insérer des lignes avant la ligne 18. Il pourrait y avoir une msg box qui dirait: opération interdite !

Je cherche depuis ce matin et je ne trouve pas.:confused:

Est-ce que quelqu'un pourrait m'aider ?

Merci beaucoup !
 

Pièces jointes

  • Test insertion.xlsm
    655.8 KB · Affichages: 50

DoubleZero

XLDnaute Barbatruc
Re : Empêcher l’insertion de lignes dans des lignes spécifiques

Bonjour, micie1509, le Forum,

Peut-être ainsi :

Code:
Option Explicit
Sub Ligne_insérer_si_emplacement_ok()
    If Selection.Row < 18 Then
        MsgBox "Opération interdite !"
    Else
        Selection.EntireRow.Insert
    End If
End Sub

A bientôt :)
 

Misange

XLDnaute Barbatruc
Re : Empêcher l’insertion de lignes dans des lignes spécifiques

Bonjour

Quand on demande de l'aide sur un classeur c'est une bonne idée de joindre un classeur qui ne soit pas en lecture seule, avec les feuilles masquées, protégées, les lignes et colonnes masquées...
Sélectionne les cellules A1:A18
écris une formule genre =0
et valide par ctrl+maj+entrée
cela interdit l'ajout ou la suppression de lignes car on ne peut pas modifier une matrice existante.
 

Pièces jointes

  • insertion.xlsm
    586.5 KB · Affichages: 37
  • insertion.xlsm
    586.5 KB · Affichages: 47
  • insertion.xlsm
    586.5 KB · Affichages: 42

JCGL

XLDnaute Barbatruc
Re : Empêcher l’insertion de lignes dans des lignes spécifiques

Bonjour à tous,

Pour remplacer les trois autres codes et utilisation du bout de code 00 :

Code:
Sub Ligne_insérer_si_emplacement_ok()
    Dim n, L As Range
    Set L = ActiveCell.EntireRow
    ActiveSheet.Unprotect
    If Selection.Row < 18 Then
        MsgBox "Opération interdite avant la ligne 18 !"
    Else
        n = InputBox("Combien de ligne : 1,3, 5 ?", "Choix", 1)    'nombre de lignes à insérer
        Rows("14:1058").Select
        Selection.EntireRow.Hidden = False


        ActiveSheet.Outline.ShowLevels RowLevels:=2
        Selection.AutoFilter
        Rows("1:1").Select
        Selection.EntireRow.Hidden = True


        L(2).Resize(n).Insert
        Rows(1).EntireRow.Hidden = False
        Rows(1).Copy L(2).Resize(n)
        L(2).Resize(n).RowHeight = L(n - 1).RowHeight
        Rows(1).EntireRow.Hidden = True


        Selection.AutoFilter
    End If
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True
End Sub

Bises à 00 et à Flo
A+ à tous
 

Pièces jointes

  • JC et 00 Test insertion.xlsm
    596.9 KB · Affichages: 36
Dernière édition:

micie1509

XLDnaute Junior
Re : Empêcher l’insertion de lignes dans des lignes spécifiques

Bonjour Misange,

Désolée, j'ai détruit des feuilles, des colonnes et des lignes pour faire un classeur moins lourd, mais j'ai effectivement oublié que j'avais des feuilles, des lignes et des colonnes masquées. Je promets de toujours vérifier mon classeur si jamais je redemande de l'aide.
J'ai essayé ta solution hier, mais j'avais sélectionné A1:AD18 et j'avais écrit ="" , mais ça ne fonctionnait pas. J'imagine que je ne l'ai pas fait comme il faut. Je vais réessayer.

Merci de ta réponse, j'apprécie beaucoup!
 
Dernière édition:

micie1509

XLDnaute Junior
Re : Empêcher l’insertion de lignes dans des lignes spécifiques

Wow, wow et rewow! J'adore vraiment ce que vous avez fait. J'en demandait pas tant! J'avais trois macros pour l'insertion de lignes, une pour insérer 1 ligne, une autre pour 3 et une pour 5 et j'adore vraiment l'idée de l'InputBox et le choix du nombre de lignes à insérer. En plus, elle bloque l'insertion avant la ligne 18.

Merci, merci, merci JCGL vous êtes vraiment très fort (en tout cas à mes yeux, vous l'êtes).
 
Dernière édition:

micie1509

XLDnaute Junior
Re : Empêcher l’insertion de lignes dans des lignes spécifiques

Merci beaucoup pour ta réponse DoubleZero,

J'ai opté pour la solution de JCGL, mais j'apprécie vraiment le temps que vous avez pris pour m'aider.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 873
Membres
103 402
dernier inscrit
regishar