A voir également:
- Type:=xlfilldefault
- Formule si et - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Formule excel moyenne - Guide
- Excel mise en forme conditionnelle formule - Guide
- Excel retour à la ligne dans une formule - Guide
2 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
5 juil. 2018 à 15:07
5 juil. 2018 à 15:07
bonjour,
Évitons de mettre la charrue avant les bœufs, voici un excellent cours VBA pour débutant (et plus) :
ftp://ftp-developpez.com/bidou/Cours/VBA/formationVBA.pdf
Évitons de mettre la charrue avant les bœufs, voici un excellent cours VBA pour débutant (et plus) :
ftp://ftp-developpez.com/bidou/Cours/VBA/formationVBA.pdf
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
5 juil. 2018 à 15:34
5 juil. 2018 à 15:34
Bonjour à tous,
essaye quelque chose comme ça :
J'ai considéré que tu voulais une recopie vers la droite de ta formule en B57 sur le nombre de cellules correspondant au mois.
Cordialement
essaye quelque chose comme ça :
Sub Macro2() Dim mois As Integer mois = 11 With ActiveSheet.Range("B57") .AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault End With End Sub
J'ai considéré que tu voulais une recopie vers la droite de ta formule en B57 sur le nombre de cellules correspondant au mois.
Cordialement
Bonjour,
Oui c'est bien cela. J'ai réussi à réajuster sur mon classeur pour avoir:
Sub Macro2()
Dim mois As Integer
mois = Cells(1, 1)
With ActiveSheet.Range("B3")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B6")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B7")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B10")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B11")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B14")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B15")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B18")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B19")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B22")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B26")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B23")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B30")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B27")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B31")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B34")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B35")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B38")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B39")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
End Sub
Merci !
Oui c'est bien cela. J'ai réussi à réajuster sur mon classeur pour avoir:
Sub Macro2()
Dim mois As Integer
mois = Cells(1, 1)
With ActiveSheet.Range("B3")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B6")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B7")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B10")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B11")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B14")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B15")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B18")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B19")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B22")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B26")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B23")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B30")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B27")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B31")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B34")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B35")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B38")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
With ActiveSheet.Range("B39")
.AutoFill Destination:=.Resize(1, mois), Type:=xlFillDefault
End With
End Sub
Merci !
5 juil. 2018 à 15:12
Merci pour votre réponse. J'ai commencé à bouquiner à ce sujet mais je vais regarder votre document.
Cependant, j'ai souhaité ouvrir ce message car j'aimerais avancer sur mon projet et je ne suis pas sûr de pouvoir lire tous le document avant.
Bien à vous,
Modifié le 5 juil. 2018 à 15:27
1, Mois n'est pas défini
2. les feuilles qui contiennent 2 Range ne sont pas référencées
3. le .Select est inutile
4. l'utilisation de Selection est vivement déconseillée
5. définir un argument nommé par sa valeur par défaut est totalement inutile (Type:=xlFillDefault)
Ça fait beaucoup trop d'erreurs sur tes deux seules ligne de code :