Débutante en VB Bloquée

  • Initiateur de la discussion Initiateur de la discussion gabialex
  • 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 !

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

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
 
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.
 
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 & ")"
 
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
 
- 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

Retour