[RESOLU] Reproduction des 12 dernières colonnes de manière récurente

mat175

XLDnaute Nouveau
Bonjour à tous,

Je viens vers vous car je rencontre un soucis avec excel, plutôt qu'un soucis, un blocage. D'habitude j'arrive à me débrouiller grâce aux différent sujets ouvert sur votre forum mais là ... pas moyen. Donc je viens demander conseil auprès des gens plus expérimenter avec excel et VBA, voir si vous pouvez m'aider ^^.

J'ai un tableau de donnée mensuel (voir exemple), et il faut que je trouve le moyen d'ajouter de manière automatique et récurrente, une nouvelle année. Autrement dis, copier les forumles des 12 dernière colonnes en dernière position.

Si il y a un moyen d'enlever également les données en dessous, ça serait top.

Ensuite sur le 2ème onglet, il faut juste que la nouvelle année nouvellement créer apparaisse dans la liste (bon j'avoue là ça doit pas être compliqué mais , mais je me suis surtout concentré sur le problème du dessus :p)

En espérant avoir été clair. Je vous remercie d'avance pour votre aide.
 

Pièces jointes

  • Test_ajout1année.xls
    40.5 KB · Affichages: 42
  • Test_ajout1année.xls
    40.5 KB · Affichages: 34
  • Test_ajout1année.xls
    40.5 KB · Affichages: 38
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Reproduction des 12 dernières colonnes de manière récurente

Bonjour Mat, et bienvenue sur le forum

première erreur ........

colonnevide = Sheets("Feuil2").UsedRange.End(xlToLeft).Column + 1

il n'y a pas de feuille nommée "Feuil2"

il faut donc modifier comme ceci:
colonnevide = Sheets(2).UsedRange.End(xlToLeft).Column + 1

ou comme cela:
colonnevide = Sheets("Donnée").UsedRange.End(xlToLeft).Column + 1

à+
Philippe
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Reproduction des 12 dernières colonnes de manière récurente

bonjour mat175

vois si cela te convient

Edit : Salut Philippe
 

Pièces jointes

  • Test_ajout1année.xls
    44.5 KB · Affichages: 41
  • Test_ajout1année.xls
    44.5 KB · Affichages: 39
  • Test_ajout1année.xls
    44.5 KB · Affichages: 44

mat175

XLDnaute Nouveau
Re : Reproduction des 12 dernières colonnes de manière récurente

Wouah impressionnant.
Merci beaucoup, c'est exactement ce dont j'avais besoin. Je vais essayer de décortiquer tout ça pour tenter de comprendre comment ca marche.

Merci beaucoup pour votre aide pierrejean.
 

gilbert_RGI

XLDnaute Barbatruc
Re : [RESOLU] Reproduction des 12 dernières colonnes de manière récurente

Bonjour

essayer ceci

Code:
Sub Macro2()
'
' Macro2 Macro
'
'
    Dim colonnevide As Integer
    Application.ScreenUpdating = False
    colonnevide = Sheets("Donnée").Cells.Find(What:="*", _
                                              LookIn:=xlFormulas, _
                                              SearchOrder:=xlByColumns, _
                                              SearchDirection:=xlPrevious).Column
    mois = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
    For i = 1 To 12
        Cells(1, colonnevide + i) = Year(Date) + 1
        Cells(2, colonnevide + i) = i
        Cells(3, colonnevide + i) = mois(i - 1)
    Next
End Sub
 

mat175

XLDnaute Nouveau
Re : [RESOLU] Reproduction des 12 dernières colonnes de manière récurente

Merci Gilbert_RGI, la solution de pierrejean fonctionne parfaitement.

Néanmoins, j'ai indiqué résolu un peu trop vite peut être. J'ai encore besoin d'une petite chose finalement ^^. Je ne l'avais pas mis dans le fichier de départ, mais j'ai une autre ligne avec une formule excel dedans, celle-ci :
=SI(ET(AP1<='Masqué glissante'!$D$2;AP1>='Masqué glissante'!$D$3);"N";SI(ET(AP1<='Masqué glissante'!$D$4;AP1>='Masqué glissante'!$D$5);"N-1";SI(ET(AP1<='Masqué glissante'!$D$6;AP1>='Masqué glissante'!$D$7);"N-2";"")))
La seule chose qui change c'est la référence AP1, qui renvoi en fait le numéro de la colonne, soit n dans le fichier de pierrejean. Y aurait-il un moyen de la copier via la macro?

Peux on rentrer une formule excel après avoir spécifié la ligne? Et si oui, de quelle manière?

En vous remerciant pour votre aide.
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : [RESOLU] Reproduction des 12 dernières colonnes de manière récurente

Re

Salut Gilbert

En supposant la formule a inscrire en B8 code a ajouter en fin de macro:
Code:
adresse = Sheets("Donnée").Cells(1, dercol + 12).Address
Range("B8").FormulaLocal = "=SI(ET(" & adresse & "<='Masqué glissante'!$D$2;" & adresse & ">='Masqué glissante'!$D$3);""N"";SI(ET(" & adresse & "<='Masqué glissante'!$D$4;" & adresse & ">='Masqué glissante'!$D$5);""N-1"";SI(ET(" & adresse & "<='Masqué glissante'!$D$6;" & adresse & ">='Masqué glissante'!$D$7);""N-2"";"""")))"
End Sub
 

mat175

XLDnaute Nouveau
Re : [RESOLU] Reproduction des 12 dernières colonnes de manière récurente

Génial, j'ai adapté à mes besoin et ça marche super bien.
Merci à vous deux pour votre aide précieuse, ce forum est vraiment le top en matière d'excel ;)
 

Statistiques des forums

Discussions
312 214
Messages
2 086 309
Membres
103 174
dernier inscrit
OBUTT