Probleme RANGE VBA

Fermé
Albert2098 - 28 oct. 2009 à 10:06
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 28 oct. 2009 à 10:27
Bonjour,

J'ai mis en place le programme VBA suivant :
Dans la sheet 1, j'ai les dates en colonnes du 1er janvier 2006 au 1er janvier 2009
Dans la sheet 2, j'ai trois dates en colonnes, qui sont comprises entre le 1er janvier 2006 et le 1er janvier 2009. Par exemple, 10 Mai 2006, 11 Novembre 2007 et 14 Aout 2008

L'idée est simplement de faire un copier/coller de toute les dates qui nous interessent entre les deux extremités definies en sheet 2. Dans mon exemple ce serait du 10 Mai 2006 au 14 Aout 2008.

J'ai mis en place le programme suivant mais j'ai une erreur et ne trouve pas pourquoi :

Pourriez vous m'aider svp !

Sub DATEtest()
'
' DATEtest Macro
'
' Touche de raccourci du clavier: Ctrl+d
'
Dim DATEFIRSTTRADE As Date
Dim DATELASTTRADE As Date
Dim DATEFINBIS As Date
Dim DATEDEBUTBIS As Date

Sheets("DATE2").Select

Range("B2").Value = DATEFIRSTTRADE
Selection.End(xlDown).Select
ActiveCell.Offset(0, 0).Value = DATELASTTRADE

Sheets("DATE1").Select
Columns("A:A").Select

Do While ActiveCell <> ""
If ActiveCell.Value = DATELASTTRADE Then
ActiveCell.Value = DATEFINBIS
End If
ActiveCell.Offset(1, 0).Select
Loop

Do While ActiveCell <> ""
If ActiveCell.Value = DATEFIRSTTRADE Then
ActiveCell.Value = DATEDEBUTBIS
End If
ActiveCell.Offset(1, 0).Select
Loop

Range(DATEFINBIS:DATEDEBUTBIS).Select
Selection.Copy

Sheets("DATE3").Select
Range("B2").Select
ActiveSheet.Paste
End Sub

Merci beaucoup !

1 réponse

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
28 oct. 2009 à 10:27
Bonjour,
Oula!!!
Allons y point par point.
1- Tu déclares des variables comme étant des dates :
Dim DATEFINBIS As Date
et ensuite tu voudrais que ces mêmes variables soient des chaines de caractères (String) :
Range(DATEFINBIS:DATEDEBUTBIS).Select
ça ne marche pas. Cette ligne (Range(DATEFINBIS:DATEDEBUTBIS).Select) signifie que tu cherches à sélectionner par exemple le Range(01:01:2009;03:02:2009)
2- Tu pourrais, après avoir bien déclaré tes variables sélectionner Range(DATEFINBIS:DATEDEBUTBIS).Select mais il faut y ajouter &""& comme ceci : Range(DATEFINBIS & ":" & DATEDEBUTBIS).Select
Bon courage pour la suite.
0