Débutante en VB Bloquée

gabialex

XLDnaute Nouveau
Bonjour à tous et merci car depuis longtemps votre forum m'a permis de resoudre bien des pbs. Aujourd'hui j'ai un besoin bien spécifique et je bloque.

J'ai une feuille de mois modèle et un suivi annuel. Je souhaite que quand on clique sur le bouton ajout mois ca demande un string qui sera le nom de ma nouvelle feuille qui sera creer suivant le "modèle mois". Pour l'instant la feuille se créé mais le nom est en dur.

Ensuite dans le suivi annuel il faut que les deux colonnes "mois estimé" et "mois reailisé" soit recopiées en dernier avec le nom du nouveau mois mais surtout que toutes les formules soit reprisent à l'identique mais en pointant sur la nouvelle feuille "mois 2011"

Je vous joint mon fichier de travail avec le réalisé si vous pouvez m'aider merci d'avance.
 

Pièces jointes

  • gabialex.xls
    103 KB · Affichages: 42
  • gabialex.xls
    103 KB · Affichages: 44
  • gabialex.xls
    103 KB · Affichages: 45

Bebere

XLDnaute Barbatruc
Re : Débutante en VB Bloquée

bonjour Gabialex
essaye ce code
Sub Création_mois()

Dim Nomfeuil As String, Nom As String
Nom = Sheets(Sheets.Count).Name
sem = Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre")
'Nomfeuil = "Avril 2011"
For i = LBound(sem) To UBound(sem)
If UCase(Mid(Nom, 1, InStr(Nom, " ") - 1)) = UCase(sem(i)) Then
If i + 1 > UBound(sem) Then Exit Sub
Nomfeuil = sem(i + 1) & " " & Mid(Nom, InStr(Nom, " ") + 1)
Exit For
End If
Next
'Set Tafeuille = Sheets("Modèle mois") 'A définir en fonction de tes besoins
Sheets("Modèle mois").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = Nomfeuil

End Sub

à bientôt
 

gabialex

XLDnaute Nouveau
Re : Débutante en VB Bloquée

Bebere super ta solution. Juste une question est ce qu'il est possible d'autamotiser la partie :
c.Offset(1, 0).Formula = "=SUMIF('" & Nomfeuil & "'!J5:J14,A3,'" & Nomfeuil & "'!I5:I14)"
c(3, 1).Formula = "=SUMIF('" & Nomfeuil & "'!J5:J14,A4,'" & Nomfeuil & "'!I5:I14)"
c(4, 1).Formula = "=SUMIF('" & Nomfeuil & "'!J5:J14,A5,'" & Nomfeuil & "'!I5:I14)"
c(1, 2) = Nomfeuil & Chr(10) & "réalisé"
c(2, 2).Formula = "=SUMIF('" & Nomfeuil & "'!J5:J14,A3,'" & Nomfeuil & "'!M5:M14)"
c(3, 2).Formula = "=SUMIF('" & Nomfeuil & "'!J5:J14,A4,'" & Nomfeuil & "'!M5:M14)"
c(4, 2).Formula = "=SUMIF('" & Nomfeuil & "'!J5:J14,A5,'" & Nomfeuil & "'!M5:M14)"

Car en fait j'ai de nombreux libéllés et evolutifs d'un mois à l'autre.
 

Softmama

XLDnaute Accro
Re : Débutante en VB Bloquée

Si c'est pour s'adapter au nbres de lignes, p-ê un truc dans le genre : (par ex. pour la 1ère cellule)
Code:
c(3, 1).Formula = "=SUMIF('" & Nomfeuil & "'!J5:J" & Sheets(NomFeuil).Range("J60000").end(xl(up).row & ",A4,'" & Nomfeuil & "'!I5:I" & Sheets(NomFeuil).Range("J60000").end(xl(up).row & ")"
 

gabialex

XLDnaute Nouveau
Re : Débutante en VB Bloquée

En fait imagine que ma colonne "estimé" comporte la formule déclinée sur 1000 libéllés différents donc il faudrait dans ma macro que je répète 1000 fois
c(1, 1).Formula = "=SUMIF('" & Nomfeuil & "'!J5:J14,A1,'" & Nomfeuil & "'!I5:I14)"
...
c(1000, 1).Formula = "=SUMIF('" & Nomfeuil & "'!J5:J14,A1000,'" & Nomfeuil & "'!I5:I14)"

En fait j'avais imaginé une macro qui duplique mes colonnes estimé et réalisé avec les formules à l'identique et qui ensuite va remplacer dans toutes les formules "Modèle mois" par NomFeuil. Alors la théorie c'est bien mais je suis incapable de le coder.

J'espere etre plus claire
 

Softmama

XLDnaute Accro
Re : Débutante en VB Bloquée

Ha ok,

Vois si le fichier joint correspond à ta demande... : il s'adapte au nbre de libellés qu'il trouve en colonne A
 

Pièces jointes

  • gabialex.xls
    109 KB · Affichages: 44
  • gabialex.xls
    109 KB · Affichages: 44
  • gabialex.xls
    109 KB · Affichages: 43

Discussions similaires

Réponses
4
Affichages
307

Statistiques des forums

Discussions
312 108
Messages
2 085 366
Membres
102 874
dernier inscrit
Petro2611