[vba]action après selection ds liste déroulan

Fermé
Yannanou Messages postés 25 Date d'inscription mercredi 18 juillet 2007 Statut Membre Dernière intervention 11 mars 2008 - 20 août 2007 à 16:09
 Utilisateur anonyme - 21 août 2007 à 14:29
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...........
A voir également:

2 réponses

choubaka Messages postés 39409 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 24 décembre 2024 2 104
20 août 2007 à 16:15
salut

rangecopy = Marque: Marque2

au lieu de

rangecopy = Marque: Marque 2
0
Yannanou Messages postés 25 Date d'inscription mercredi 18 juillet 2007 Statut Membre Dernière intervention 11 mars 2008 1
21 août 2007 à 07:32
J'ai essayer mais il me met le meme message d'erreur malheureusement!
Y a t-il d'autre possibilité meme si je dois modifier d'autres choses?

Merci d'avance

Yann
0
Utilisateur anonyme
21 août 2007 à 14:29
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 :
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
0