Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

  • Initiateur de la discussion Initiateur de la discussion Caninge
  • 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 !

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

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

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.
 
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
 
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
 
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

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

Bonsoir Roblochon, Job75

c'est intéressant cet macro. Ne peut-on pas rajouter quelques lignes en cas
où se trompe de valeurs dans la cellule.
Revenir en arrière en quelque sorte.
Merci
 
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

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

- 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

Discussions similaires

Réponses
2
Affichages
595
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…