Premier programme VBA

cs_clemcy Messages postés 3 Date d'inscription mardi 12 août 2008 Statut Membre Dernière intervention 12 août 2008 - 12 août 2008 à 11:39
cs_clemcy Messages postés 3 Date d'inscription mardi 12 août 2008 Statut Membre Dernière intervention 12 août 2008 - 12 août 2008 à 14:28
Bonjour!

alors j'essaie de composer mon premier programmme VBA pour mon stage . Si vous pouviez m'aider à avancer ce serait vraiment bien. J'essaie d'implémenter une date sur excel avec une macro. Voilà ce que j'ai écrit. Evidemment vu que je suis pas experte c'est sans doute nul mais je commence ;-)

Sub boucle_changins_date()


Dim rng As Range, i As Integer
Set rng = Range("A1:A92")
i = 1


  For counter = 1 To rng.Rows.Count
 
 rng.Cells(i) = DateAdd("n", 10, "29.12.1979 12:00:00 AM")
 
           Next counter

End Sub

4 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
12 août 2008 à 11:45
Salut,

le plus simple serait de boucler sur une plage de cellule, mais différemment de ta méthode.
Le but est de déclarer un objet range, qui va lui meême parcourir une plage de selection, cellule par cellule :

Dim rng As Range

    For each rng in Range("A1:A92")
         rng.value = DateAdd("n", 10, "29.12.1979 12:00:00 AM")
    Next rng

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
cs_clemcy Messages postés 3 Date d'inscription mardi 12 août 2008 Statut Membre Dernière intervention 12 août 2008
12 août 2008 à 13:44
merci Mortalino, mais maintenant dans la partie A1:A92 j'ai toujours la même date le "29.12.1979  00:10:00" alors que la valeur de la cellule A2 doit être "29.12.1979  00:20:00" celle de la cellule A3 doit être "29.12.1979  00:30:00" etc... Il faut que les dates augmentent de 10 min de celulle en cellule. C'est pour ça que j'essayais de faire une boucle for en fait... est-ce que tu saurais comment faire? merci beaucoup pour ton aide déjà! 
0
cyrilremy Messages postés 33 Date d'inscription samedi 15 décembre 2007 Statut Membre Dernière intervention 11 août 2010
12 août 2008 à 14:02
Dim rng As Range, heure as integer, minute as integer   


heure=0


minute=0


For each rng in Range("A1:A92")


minute=minute +10 'A chaque passage on ajoute 10 minutes

         rng.value = DateAdd("n", 10, "29.12.1979 " & cstr(heure) & ":" & CStr(minute) & ":00 AM")
' La commande CStr transforme son argument (ici heure ou minute) en chaine de caractères.

' Ensuite, il faut que tu ajoutes un test "if" pour vérifier la valeur de minute : si minute=60, alors minute = 0 et heure=1
    Next rng

Bon courage

@+
Cyril
0
cs_clemcy Messages postés 3 Date d'inscription mardi 12 août 2008 Statut Membre Dernière intervention 12 août 2008
12 août 2008 à 14:28
Salut cyril!

Tout d'abord merci de ta réponse! Mais (il y a toujours un mais n'est-ce pas?) un message d'erreur s'affiche: erreur 13 incompatibilité de type
avec cette partie du code en jaune :
 rng.value = DateAdd("n", 10, "29.12.1979 " & cstr(heure) & ":" & CStr(minute) & ":00 AM")

Peut-être que c'est le fait que que minute et heure soit de type Integer qui provoque cette erreur, dateAdd ne l'accepte pas?! Comment faire alors? quelqu'un??
0
Rejoignez-nous