[vba]action après selection ds liste déroulan
Yannanou
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je fait créé une fenetre avec liste déroulante, mais après avoir fait le choix dans cette liste (deux dates) j'aimerai copier toutes les lignes qui sont comprises entre ces deux dates.
Je pense que ma définition de variable est mauvaise.
J'ai mis un petit mot à coté de l'endroit ou il affiche l'erreur.
Merci de votre interet.
Bonne soirée.
Yann
Une partie de la macro :
'*******************************************************************************************/
' /
'Nom: ListeDeroulanteModifiable /
'Auteur: Yann /
'Date: 13/7/2007 /
' /
'Déscription: Pour afficher la fenetre "choix date" et lancer la macro qui lui /
' incombe. Celle-ci conciste à récuperer les information des incidents /
' entre deux dates, de les copiers dans la feulle "tri daté", et de les /
' mettre en forme. /
' /
'*******************************************************************************************/
Private Sub UserForm_Activate()
'********************************************************************************************/
' Renvoit à la mise en forme de la fenetre "ListeDeroulanteModifiable"***********************/
'********************************************************************************************/
Sheets("Données").Select
Dim I As Integer
Dim nbligne As Long
nbligne = Application.WorksheetFunction.CountA(Range("B:B"))
ListeDeroulanteModifiable.Listedate.Clear
For I = 1 To nbligne
ListeDeroulanteModifiable.Listedate.AddItem Cells(I, 2).Value
ListeDeroulanteModifiable.Listedate2.AddItem Cells(I, 2).Value
Next
Listedate.ListIndex = 0
End Sub
Private Sub Valider_Click()
'********************************************************************************************/
' Définition des variables*******************************************************************/
'********************************************************************************************/
ListeDeroulanteModifiable.Hide
Application.ScreenUpdating = False
Marque = Listedate.Value
Marque2 = Listedate2.Value
'********************************************************************************************/
' Renvoit à la gestion d'erreur en bas de page***********************************************/
'********************************************************************************************/
On Error GoTo GestionErreur
'********************************************************************************************/
' Remise à zero de la feuille "compte rendu daté"********************************************/
'********************************************************************************************/
Sheets("Compte rendu daté").Select
Cells.Select
Selection.Delete Shift:=xlUp
Sheets("Données").Select
ActiveSheet.ShowAllData
Application.Dialogs(xlDialogFilter).Show 2
'********************************************************************************************/
' Selection et activation de l'affichage total de la feuille "Données"***********************/
'********************************************************************************************/
rangecopy = Marque: Marque 2 ==========> c'est ici qu'il m'affiche une erreur de compilation
Rows(rangecopy).Select
Range(Marque, Marque2).Copy
Selection.Copy
Sheets("Compte rendu daté").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
'*********************************************************************************************/
' Mise en forme de la feuille "Compte rendu daté"*********************************************/
'*********************************************************************************************/
Selection.Interior.ColorIndex = xlNone
Columns("A:A").EntireColumn.AutoFit
Columns("B:B").EntireColumn.AutoFit
Columns("C:C").EntireColumn.AutoFit
Range("1:1,9:9,15:15,16:16,18:18").Select
Range("A18").Activate
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Range("A1").Select
ActiveCell.FormulaR1C1 = "D.Début"
With ActiveCell.Characters(Start:=1, Length:=17).Font
.Name = "Arial"
.FontStyle = "Gras"
.Size = 10
.Strikethrough = False...........
Je fait créé une fenetre avec liste déroulante, mais après avoir fait le choix dans cette liste (deux dates) j'aimerai copier toutes les lignes qui sont comprises entre ces deux dates.
Je pense que ma définition de variable est mauvaise.
J'ai mis un petit mot à coté de l'endroit ou il affiche l'erreur.
Merci de votre interet.
Bonne soirée.
Yann
Une partie de la macro :
'*******************************************************************************************/
' /
'Nom: ListeDeroulanteModifiable /
'Auteur: Yann /
'Date: 13/7/2007 /
' /
'Déscription: Pour afficher la fenetre "choix date" et lancer la macro qui lui /
' incombe. Celle-ci conciste à récuperer les information des incidents /
' entre deux dates, de les copiers dans la feulle "tri daté", et de les /
' mettre en forme. /
' /
'*******************************************************************************************/
Private Sub UserForm_Activate()
'********************************************************************************************/
' Renvoit à la mise en forme de la fenetre "ListeDeroulanteModifiable"***********************/
'********************************************************************************************/
Sheets("Données").Select
Dim I As Integer
Dim nbligne As Long
nbligne = Application.WorksheetFunction.CountA(Range("B:B"))
ListeDeroulanteModifiable.Listedate.Clear
For I = 1 To nbligne
ListeDeroulanteModifiable.Listedate.AddItem Cells(I, 2).Value
ListeDeroulanteModifiable.Listedate2.AddItem Cells(I, 2).Value
Next
Listedate.ListIndex = 0
End Sub
Private Sub Valider_Click()
'********************************************************************************************/
' Définition des variables*******************************************************************/
'********************************************************************************************/
ListeDeroulanteModifiable.Hide
Application.ScreenUpdating = False
Marque = Listedate.Value
Marque2 = Listedate2.Value
'********************************************************************************************/
' Renvoit à la gestion d'erreur en bas de page***********************************************/
'********************************************************************************************/
On Error GoTo GestionErreur
'********************************************************************************************/
' Remise à zero de la feuille "compte rendu daté"********************************************/
'********************************************************************************************/
Sheets("Compte rendu daté").Select
Cells.Select
Selection.Delete Shift:=xlUp
Sheets("Données").Select
ActiveSheet.ShowAllData
Application.Dialogs(xlDialogFilter).Show 2
'********************************************************************************************/
' Selection et activation de l'affichage total de la feuille "Données"***********************/
'********************************************************************************************/
rangecopy = Marque: Marque 2 ==========> c'est ici qu'il m'affiche une erreur de compilation
Rows(rangecopy).Select
Range(Marque, Marque2).Copy
Selection.Copy
Sheets("Compte rendu daté").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
'*********************************************************************************************/
' Mise en forme de la feuille "Compte rendu daté"*********************************************/
'*********************************************************************************************/
Selection.Interior.ColorIndex = xlNone
Columns("A:A").EntireColumn.AutoFit
Columns("B:B").EntireColumn.AutoFit
Columns("C:C").EntireColumn.AutoFit
Range("1:1,9:9,15:15,16:16,18:18").Select
Range("A18").Activate
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Range("A1").Select
ActiveCell.FormulaR1C1 = "D.Début"
With ActiveCell.Characters(Start:=1, Length:=17).Font
.Name = "Arial"
.FontStyle = "Gras"
.Size = 10
.Strikethrough = False...........
A voir également:
- [vba]action après selection ds liste déroulan
- Action - Guide
- Liste déroulante excel - Guide
- Télécharger film d'action gratuitement et rapidement - Télécharger - TV & Vidéo
- Action fans - Accueil - Guide arnaque
- Vous devez disposer d'une autorisation pour effectuer cette action - Guide
2 réponses
Bonjour,
Il manque quelques infos pour répondre correctement !
Il semble que les variables ne soient pas déclarées :
Alors que est le type de [ Marque ] et [ Marque2 ].
Le type du contenant ? ( Type de la variable )
Le type du contenu ? ( Type de la donnée )
À première vue :
ce bout de code :
devrait se lire comme suit :
Lupin
Il manque quelques infos pour répondre correctement !
Il semble que les variables ne soient pas déclarées :
Alors que est le type de [ Marque ] et [ Marque2 ].
Le type du contenant ? ( Type de la variable )
Le type du contenu ? ( Type de la donnée )
À première vue :
ce bout de code :
rangecopy = Marque: Marque 2 ==========> c'est ici qu'il m'affiche une erreur de compilation Rows(rangecopy).Select Range(Marque, Marque2).Copy Selection.Copy Sheets("Compte rendu daté").Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True '*************************************************/ ' Mise en forme de la feuille "Compte rendu daté *********/ '*************************************************/ Selection.Interior.ColorIndex = xlNone Columns("A:A").EntireColumn.AutoFit Columns("B:B").EntireColumn.AutoFit Columns("C:C").EntireColumn.AutoFit Range("1:1,9:9,15:15,16:16,18:18").Select Range("A18").Activate Application.CutCopyMode = False
devrait se lire comme suit :
Dim Marque As String, Marque2 As String rangecopy = Marque & ":" & Marque2 Rows(rangecopy).Select Selection.Copy Sheets("Compte rendu daté").Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Application.CutCopyMode = False Selection.Interior.ColorIndex = xlNone Columns("A:C").EntireColumn.AutoFit
Lupin
Y a t-il d'autre possibilité meme si je dois modifier d'autres choses?
Merci d'avance
Yann