[vba]action après selection ds liste déroulan
Yannanou
Messages postés
25
Statut
Membre
-
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
- Liste déroulante excel - Guide
- Télécharger film d'action gratuitement et rapidement - Télécharger - TV & Vidéo
- Concurrent action - Guide
- Vous devez disposer d'une autorisation pour effectuer cette action - Guide
- Liste code ascii - 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