Insertion de cellules uniquement sur une plage de prédéfinie.

Caninge

XLDnaute Accro
Bonjour à tous amis excelliens.

j'ai bien cherché sur le forum comment insérer des les lignes mais je voudrais
insérer ces lignes seulement dans certaines colonnes. Mais j'ai fait chou blanc comme on dit souvent.

Pourriez-vous m'aider s'il vous plait ?

Je joins un fichier avec les explications.

Bonne journée.
 

Pièces jointes

  • Insertion_Lignes_V1.xlsm
    12.7 KB · Affichages: 6

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

A mettre dans le module de code de la feuille (click-droit sur l'onglet/visualiser le code):
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim nbLignes As Long
 If Target.Count = 1 And Target.Column = 2 And IsNumeric(Target.Value) Then
    nbLignes = Target.Value
    If nbLignes > 0 Then Target.Offset(1).Resize(nbLignes, 6).Insert xlShiftDown
 End If
End Sub

Bon après-midi
 

Caninge

XLDnaute Accro
bonjour,

J'ai ouvert ma page dont laquelle je voudrais travailler.
j'ai copié le code de Roblochon dans la page des codes VBA.
J'ai essayé de modifié par mes propres moyens.

mais bon ! vous m'avez compris.

Merci de me filer un petit coup de main.

Caninge
 

Pièces jointes

  • Insertion_Lignes_V2.xlsm
    27.3 KB · Affichages: 2

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

La macro est au bon endroit. Un rien l'empêche de fonctionner:
Target.count = 1 et non 0. Essayez quand vous ne comprenez pas de vous servir de la touche F1 après avoir sélectionné un mot-clef de VBA.
Vous auriez vu que Target est la plage de cellules qui ont changé et que count en donne le nombre, qui ne peut être inférieur à 1 quand la macro est appelée.

Changez ça et voyez.
 

Caninge

XLDnaute Accro
rebonjour,

moi et l'anglais ça fait deux Roblochon. C'est mon problème avec cette langue.
Il faut que je rajoute quelles lignes en VBA pour que les plages rajoutées soient jaunes.
Et aussi comment faire marche arrière en cas d'erreur.

merci de me dépanner

CANINGE
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Lancez l'enregistreur de macro, sélectionnez des cellules et donnez leur un fond jaune puis arrêtez l'enregistreur de macro et vous verrez.
Pour faire marche arrière, il faut appeler 'Application.Undo' avant de recommencer une quelconque action.

Bonne programmation
 

Caninge

XLDnaute Accro
Bonjour à tous chers amis,
j'ai modifié mon tableau, je pense qu'il faudra une macro pour arriver au résultat que je voudrais.
si vous pouviez m'aider s'il vous plait. les explications sont dans le fichier.
Merci de m'accorder quelques minutes.
 

Pièces jointes

  • Insertion_Lignes_V3.xlsm
    44.9 KB · Affichages: 3

job75

XLDnaute Barbatruc
Bonsoir Caninge, Roblochon,

Avec cette macro on sait exactement ce que l'on fait :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim n
n = Int(Val(CStr(Target(1))))
If n < 1 Then Exit Sub
Cancel = True
Target(2, 1).Resize(n).Insert xlDown
Target(2, 1).Resize(n).Interior.ColorIndex = 35 'vert clair
End Sub
A vous d'adapter.

A+
 

Pièces jointes

  • Insertion(1).xls
    69 KB · Affichages: 6

job75

XLDnaute Barbatruc
Bonjour Caninge, le forum,

Fichier (2) avec ce code :
VB:
Dim n, cible As Range 'mémorise les variables

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
n = Int(Val(CStr(Target(1))))
If n < 1 Then Application.OnUndo "", "": Exit Sub
Cancel = True
Target(2, 1).Resize(n).Insert xlDown
Target(2, 1).Resize(n).Interior.ColorIndex = 35 'vert clair
Set cible = Target
Application.OnUndo "J'annule", Me.CodeName & ".Z"
End Sub

Sub Z()
If n < 1 Or cible Is Nothing Then Exit Sub
cible(2, 1).Resize(n).Delete xlUp
Application.OnRepeat "", Me.CodeName & ".Y"
End Sub

Sub Y()
If Not cible Is Nothing Then Worksheet_BeforeDoubleClick cible, False
End Sub
A+
 

Pièces jointes

  • Insertion(2).xls
    75 KB · Affichages: 8

Caninge

XLDnaute Accro
Bonjour à tous,

merci de se pencher sur mon tableau:
je reviens sur mon fichier que j'ai modifié. Je vais abandonner d'ajouter des lignes par VBA.
Sans macro si possible comment remplir des cellules selon la valeur d'une autre cellule.
un peu compliqué à comprendre comme ça, je me met à votre place. J'envoie un fichier avec une explication plus concrète.
Merci
 

Pièces jointes

  • Insertion_Lignes_V4.xlsm
    45.3 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
312 145
Messages
2 085 759
Membres
102 965
dernier inscrit
Mael44