VBA récupérer une valeur entrée par l'utilisateur dans excel
Fermé
omarito
-
12 avril 2011 à 10:35
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 14 avril 2011 à 09:29
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 14 avril 2011 à 09:29
A voir également:
- VBA récupérer une valeur entrée par l'utilisateur dans excel
- Liste déroulante excel - Guide
- Recuperer message whatsapp supprimé - Guide
- Recuperer video youtube - Guide
- Déplacer une colonne excel - Guide
- Calculer une moyenne sur excel - Guide
3 réponses
Utilisateur anonyme
12 avril 2011 à 13:45
12 avril 2011 à 13:45
Bonjour,
Étape 1 :
Ouvrir VBE (Visual Basic Editor)
// Menu / Outils / Macro / Visual Basic Editor -> [Alt] [F11]
Supposons que la cellule D15 est sur la feuille 1.
Dans l'éditeur, regarder à gauche, la fenêtre qui se nomme
[ Projet - VBAProject ], vous y voyer le nom de ton classeur
Excel, repère la feuille 1 [ Feuil1] et effectue un double clic
dessus.
Tu attérit dans la fenêtre de droite, colle y le code suivant :
Cdt
Lupin
Étape 1 :
Ouvrir VBE (Visual Basic Editor)
// Menu / Outils / Macro / Visual Basic Editor -> [Alt] [F11]
Supposons que la cellule D15 est sur la feuille 1.
Dans l'éditeur, regarder à gauche, la fenêtre qui se nomme
[ Projet - VBAProject ], vous y voyer le nom de ton classeur
Excel, repère la feuille 1 [ Feuil1] et effectue un double clic
dessus.
Tu attérit dans la fenêtre de droite, colle y le code suivant :
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim Valeur As Long, Boucle As Long Application.EnableEvents = False If Not (Intersect(Target, Range("D15"))) Then Valeur = CLng(Target.Value) Range("B61:O61").Select Selection.Copy Range("B62").Select For Boucle = 1 To Valeur ActiveSheet.Paste ActiveCell.Offset(1, 0).Select Next Boucle Application.CutCopyMode = False End If Application.EnableEvents = True End Sub '
Cdt
Lupin
Utilisateur anonyme
13 avril 2011 à 17:03
13 avril 2011 à 17:03
Bonjour,
Code modifié selon la demande :
Cdt
Lupin
Code modifié selon la demande :
Option Explicit ' Private Sub Worksheet_Change(ByVal Target As Range) Static Nombre As Long Dim Valeur As Long, Boucle As Long Application.EnableEvents = False If Not (Intersect(Target, Range("D15"))) Then Valeur = CLng(Target.Value) If (Valeur < Nombre) Then DetruitLigne (Nombre) End If Nombre = Valeur Range("B61:O61").Select Selection.Copy Range("B62").Select For Boucle = 1 To Valeur ActiveSheet.Paste ActiveCell.Offset(1, 0).Select Next Boucle Application.CutCopyMode = False End If Application.EnableEvents = True End Sub ' Private Sub DetruitLigne(ByVal Nombre As Long) Dim Boucle As Long Range("B62").Select For Boucle = 1 To Nombre ActiveCell.EntireRow.Delete Next Boucle End Sub '
Cdt
Lupin
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
14 avril 2011 à 09:29
14 avril 2011 à 09:29
Bonjour,
Peut-être + simple et sans boucle
b165 correspond à 100 dans D15
regarde si cette maquette peut t'aider
https://www.cjoint.com/?3DojCVHxkiG
Peut-être + simple et sans boucle
Private Sub Worksheet_Change(ByVal Target As Range) Dim lig As Integer If Not Intersect(Target, Range("D15")) Is Nothing And Target.Count = 1 Then lig = Range("B165").End(xlUp).Row + 1 Application.EnableEvents = False Range("B62:O" & lig).Clear If Target <> "" Then Range("B61:O" & 61 + Target).FillDown Application.EnableEvents = True End If End Sub
b165 correspond à 100 dans D15
regarde si cette maquette peut t'aider
https://www.cjoint.com/?3DojCVHxkiG
13 avril 2011 à 16:36
Merci bcp pour ta réactivité.
ça semble marcher... cependant si lutilisateur rentre un 2 éme nbre inférieur au 1er, il faudrait que le programme supprime les lignes en plus sans beuguer...
ex: il rentre 20, la ligne est copiée 20 fois, puis il se rend compte que c'est bcp et tape 15... le programme doit réinitialiser et ne copier que 15 lignes...
J'espère que c clair
et merci bcp pour ton aide très précieuse.
A+