XL 2019 Remplissage automatique des cellules excel à partir d'une Macro

  • Initiateur de la discussion Initiateur de la discussion ajox01
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ajox01

XLDnaute Junior
Bonjour
J'ai besoin de votre aide: Je voudrais remplir la colonne B du fichier joint de manière automatique à partir d'une Macro. Je voudrais que le chiffre "1" s'affiche en face de chaque mois à chaque fois que j'exécute la Macro....

Merci de votre aide
Cordialement
ajox01
 

Pièces jointes

Bonjour Staple 1600

Je suis nouveau dans le VBA. Je souhaite que vous me donniez tout le protocole. J'ai l'impression que vous m'aviez donné le nœud. J'ai fait un copier/coller de la syntaxe mais quand je suis allé dans la boite de dialogue pour exécuter la macro, le contenu était vide....

Bien à vous
 
Bonjour Ajox,
Un truc dans le genre devrait suffire :
VB:
Sub RemplitColA()
For i = 2 To [A65000].End(3).Row
    [B:B].Cells(i, 1) = 1
Next i
End Sub
Rebonjour Sylvanu
Ca commence à marcher. Au fait je suis nouveau dans le VBA. Je n'arrive pas à adapter. Je voulais définir 7 macros:
1) Pour T1 je voudrais avoir "1" en face de chaque mois de Janvier 2020 à Mars 2020
2) Pour T2 je voudrais avoir "1" en face de chaque mois de Avril 2020 à Juin 2020
3) Pour S1 je voudrais avoir "1" en face de chaque mois de Janvier 2020 à Juin 2020
4) Pour T3 je voudrais avoir "1" en face de chaque mois de Juillet 2020 à Septembre 2020
5) Pour T4 je voudrais avoir "1" en face de chaque mois de Octobre 2020 à Décembre 2020
6) Pour S2 je voudrais avoir "1" en face de chaque mois de Juillet 2020 à Décembre 2020
7) Pour Year je voudrais avoir "1" en face de chaque mois de Janvier 2020 à Décembre 2020

Merci pour votre aide
ajox01
 
Bonjour,
Ca n'a rien à voir avec la demande initiale !
Voici un type simple de macro pour T1 :
VB:
Sub Macro_T1()
For i = 2 To [A65000].End(3).Row    ' pour chaque cellule non vide de la colonne A
    ' Si 2020 et mois entre Janvier et Mars
    If Year([A:A].Cells(i, 1)) = 2020 And Month([A:A].Cells(i, 1)) >= 1 And Month([A:A].Cells(i, 1)) <= 3 Then
        ' alors on met un 1 dans la cellule en colonne B
        [B:B].Cells(i, 1) = 1
    End If
Next i
End Sub
Les autres seront les mêmes mais adaptées aux hypothèses.
Comme c'est un exercice, je vous laisse les adapter. 🙂
 

Pièces jointes

Bonjour le fil

=>ajox01
[Précisions]
J'ai bâti ma réponse du message#3 en me basant sur la réponse de sylvanu (message#2)
Donc le code que je proposais fait exactement la même chose que sa macro Sub RemplitColA().
La suite du fil montre comme le note sylvanu que la question est en fait tout autre.
 
Bonjour,
Ca n'a rien à voir avec la demande initiale !
Voici un type simple de macro pour T1 :
VB:
Sub Macro_T1()
For i = 2 To [A65000].End(3).Row    ' pour chaque cellule non vide de la colonne A
    ' Si 2020 et mois entre Janvier et Mars
    If Year([A:A].Cells(i, 1)) = 2020 And Month([A:A].Cells(i, 1)) >= 1 And Month([A:A].Cells(i, 1)) <= 3 Then
        ' alors on met un 1 dans la cellule en colonne B
        [B:B].Cells(i, 1) = 1
    End If
Next i
End Sub
Les autres seront les mêmes mais adaptées aux hypothèses.
Comme c'est un exercice, je vous laisse les adapter. 🙂
Merci beaucoup Sylvanu
Puisse Dieu te bénir!
 
Re

sylvanu
Oui, j'ai vu
Mais je lui précisais juste pourquoi mon code ne faisait pas ce qu'il voulait qu'il fasse mais qu'il fait ce que toi tu faisais dans le message#2
😉
D'ailleurs, puisqu'on parle initiation
J'avais aussi commis ces deux variantes 😉
VB:
Sub RemplitColA_ter()
With Cells(2, 2)
.Value = 1: .Resize(Cells(Rows.Count, 1).End(3).Row - 1).FillDown
End With
End Sub
Sub RemplitColA_quatro()
[B2] = 1
[B2].Resize(Cells(Rows.Count, 1).End(3).Row - 1).DataSeries Step:=0
End Sub
 
re

Mais je suis cool (comme l'indique la présence des deux 😉)
La preuve, je ponds encore (mais plus par futilité que par utilité - faut bien que le temps passe, pendant que ma lessive tourne 😉)
VB:
Sub RemplitColA_cinquo()
With [B2].Resize(Cells(Rows.Count, 1).End(3).Row - 1)
.FormulaR1C1 = "=ROW(R1C1)"
.Value = .Value
End With
End Sub
Cela c'est pour le point#1 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
355
  • Question Question
Autres MACRO
Réponses
20
Affichages
478
Retour