Selection.autofill avec références relatives

Salade007 Messages postés 76 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 30 janvier 2019 - 2 oct. 2008 à 15:03
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 - 2 oct. 2008 à 18:12
Bonjour à tous

je cherche à modifier en vba la ligne de code suivante :

Range("B5").select
Selection.Autofill destination :=range("b5:b35"), type:xlfilldefault

par la même ligne en changeant le range("b5:b35") en variable en fait j'écrits dans la prmière cellule le 1jour du jour type(Lu) et en utilisant la methode autofill selon le mois 30, 31, voir 28 ou 29 pour avoir la  correspondance des jours de la semaine.
En fait selon le mois je veux tiré juque la cellule 31 en dessous ou 30 etc...

merci pour vos réponse
à++++++++

2 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
2 oct. 2008 à 15:54
Salut,
"b5:b35" n'étant rien de plus qu'une chaine de caractère tu peux très bien le mettre comme ceci

Dim Dest As String
Range("B5").Select
Dest = "B5:B35"
Call Selection.AutoFill(Range(Dest), xlFillDefault), ----
[../code.aspx?ID=41455 By Renfield]
Et donc aller chercher Dest n'importe ou.
JE ne sais pas si je suis très clair et si c'est réellement ce que tu souhaites mais bon...

@+: Ju£i€n
Pensez: Réponse acceptée
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
2 oct. 2008 à 18:12
Salut,

jrivet, je pense que tu n'as repondu qu'en parti a la question et donc je me permet de completer :

salade007, le code qui suit n'est surement pas completement adapté à ton besoin mais ne doit pas en etre tres loin. Pour voir si cela correspond a ton besoin tu dois le tester sur une feuille ou un fichier different donc sepparement de ton code existant.

sur une nouvelle feuille appeler feuil, en A1 tu ecris l'année par exemple : 2008
en A2 tu ecris le mois par exemple février (Attention à l'orthographe et même aux accents !)

En suite il ne reste plus qu'a l'ancer la macro

Sub demo()
    Dim NbJour As Long, MaDate As String, Maplage As Range

    With Worksheets("feuil1")
        'creation de la date a partir du mois et de l'année specifiés sur la feuille
        'attention ici le format de date est anglais
        MaDate = .Range("A2").Text & "/01/" & .Range("A1").Value
        On Error Resume Next 'si erreur sur la prochaine ligne on continu quand meme
        MaDate = DateValue(MaDate) 'permet de verifier que la date est bien une date
        If Err = 13 Then 'si ce n'est pas une date
            Err.Clear
            MsgBox "Erreur sur la date. Veuillez verifier les valeurs saisies. ", vbExclamation
            Exit Sub
        End If
        'Combien de jour pour le mois spécifié de l'année spécifié ?
        NbJour = DateDiff("d", MaDate, DateAdd("m", 1, MaDate))
        'on efface les valeurs deja presentes
        .Columns("B:C").ClearContents
        'ecrit le nom du premier jour de mois
        .Range("B5").Value = Format(MaDate, "dddd")
        .Range("C5").Value = 1
        'on determine la plage de destination de l'autofill en fonction du nombre de jour et de la 1iere cellule
        Set Maplage = .Range("B5:C" & 5 + NbJour - 1)
        'on lance l'autofill
        .Range("B5:C5").AutoFill Destination:=Maplage, Type:=xlFillDefault
    End With
End Sub

A+
0
Rejoignez-nous