Problème de boucle "For each feuille in worksheets"

Annetoine

XLDnaute Nouveau
Bonjour à tous,

Voila j'aimerais améliorer mon tableau de suivi de trésorerie pour gagner du temps à la saisie. (Voir image en PJ).

En effet, il arrive souvent qu'un montant se reporte tous les mois à la même date. Pour éviter de devoir le noter sur tous les mois de l'année, je voulais réaliser une macro qui, en fonction du nom, de la date et du montant de l'échéance voulue, la note automatiquement au bon endroit dans l'ensemble des mois du calendrier.

Voici la macro que j'ai réalisé, qui ne fonctionne pas très bien...
Code:
Sub Macro1()
'
Dim Feuille As Worksheet
Dim nom As String
Dim date1 As Integer
Dim montant As Single


 For Each Feuille In ActiveWorkbook.Sheets
  
 Cells(Range("settings!date1") + 7, 2).Select
 ActiveCell.FormulaR1C1 = Range("settings!nom")
 
Cells(Range("date1") + 7, 3).Select
ActiveCell.FormulaR1C1 = Range("settings!montant")

   Next Feuille
[ATTACH]291015.vB[/ATTACH][ATTACH]291016.vB[/ATTACH]End Sub

La macro fonctionne bien sur l'onglet ouvert mais ne parcours pas du tout les autres onglets.
Autre problème, pour une échéance par exemple le 31 de chaque mois, quid des mois à 30 jours (même problème pour le moi de février...)

Merci pour votre aide !
 

Pièces jointes

  • Capture2.jpg
    Capture2.jpg
    33.5 KB · Affichages: 15
  • Capture2.jpg
    Capture2.jpg
    33.5 KB · Affichages: 29
  • Capture2.jpg
    Capture2.jpg
    33.5 KB · Affichages: 27
  • Capture.jpg
    Capture.jpg
    35.8 KB · Affichages: 9
  • Capture.jpg
    Capture.jpg
    35.8 KB · Affichages: 21
  • Capture.jpg
    Capture.jpg
    35.8 KB · Affichages: 21

MJ13

XLDnaute Barbatruc
Re : Problème de boucle "For each feuille in worksheets"

Re

Tu peux tester l'adaptation de ta macro:

Code:
Dim Feuille As Worksheet
Dim nom As String
Dim date1 As Integer
Dim montant As Single

 For Each Feuille In ActiveWorkbook.Sheets
If Feuille.Name <> "Setting" Then Feuille.Select
 Cells(Range("settings!date1") + 7, 2).Select
 ActiveCell.FormulaR1C1 = Range("settings!nom")
 
Cells(Range("date1") + 7, 3).Select
ActiveCell.FormulaR1C1 = Range("settings!montant")
   Next Feuille
 
End Sub
 

Discussions similaires

Réponses
21
Affichages
279
Réponses
2
Affichages
145

Statistiques des forums

Discussions
312 169
Messages
2 085 910
Membres
103 033
dernier inscrit
thazet