Premier programme VBA

Signaler
Messages postés
3
Date d'inscription
mardi 12 août 2008
Statut
Membre
Dernière intervention
12 août 2008
-
Messages postés
3
Date d'inscription
mardi 12 août 2008
Statut
Membre
Dernière intervention
12 août 2008
-
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

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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
Messages postés
3
Date d'inscription
mardi 12 août 2008
Statut
Membre
Dernière intervention
12 août 2008

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à! 
Messages postés
33
Date d'inscription
samedi 15 décembre 2007
Statut
Membre
Dernière intervention
11 août 2010

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
Messages postés
3
Date d'inscription
mardi 12 août 2008
Statut
Membre
Dernière intervention
12 août 2008

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??