S
Stéph
Guest
Bonjour le forum
J'ai des soucis avec une de mes macros appelée "MàJ Onglet ptf"
Un peu d'explications:
Les valeurs dans la feuille General sont une importation de données, que je dois effectuer 2 fois par jour.
Actuellement, j'ai 2 onglets de créé pour les ptf 1 et 2, et je voudrai obtenir une mise à jour des onglets du classeur
en cliquant sur " MàJ Onglets Ptf" et mettre en format chaque nouvel onglet
J'ai bien commencé mais ça bug encore
En pièce jointe, le fameux fichier et ci dessous la macro défectueuse:
Sub MAJ_Onglet_Ptf()
'
' remet à jour les onglets du classuers avec les nouveaux ptf
'et complète chaque onglet avec le nombre de tableau nécéssaire
'
'Variables
Dim TabLigFin As Integer
Dim cpt As Integer
Dim CptFin As Integer
Dim feuille As String
Dim Ongletptf As Worksheet
'Création de d'autant de tableaux necessaire par portefeuille
Application.ScreenUpdating = False
CptFin = Sheets("General").Range("A65536").End(xlUp).Row
For cpt = 2 To CptFin
feuille = Sheets("General").Range("B" & cpt)
'créer onglet que s'il n'existe pas encore
For Each Ongletptf In ActiveWorkbook.Worksheets
If feuille = Ongletptf.Name Then
Else
On Error GoTo CreationFeuille
TabLigFin = Sheets(feuille).Range("B65536").End(xlUp).Row + 1
Sheets(feuille).Columns("A:A").Select
Selection.ColumnWidth = 12
ActiveSheet.Buttons.Add(0, 14.25, 59.25, 20).Select
Selection.OnAction = "Autpen"
Selection.Characters.Text = "Macros"
Sheets(feuille).Columns("C:C").Select
Selection.ColumnWidth = 18
Sheets(feuille).Columns("D").Select
Selection.ColumnWidth = 18
Sheets(feuille).Columns("E:E").Select
Selection.ColumnWidth = 40
Sheets(feuille).Columns("F:F").Select
Selection.ColumnWidth = 1.47
Sheets(feuille).Range("A1").Select
On Error GoTo 0
If TabLigFin = 2 Then TabLigFin = 1
Sheets("General").Range("AA1:AE12").Copy Sheets(feuille).Range("B" & TabLigFin)
Sheets("General").Range("AA1:AE12").Copy
Sheets(feuille).Range("B" & TabLigFin).PasteSpecial Paste:=xlAll
Sheets(feuille).Range("C" & TabLigFin + 1).Value = Sheets("General").Range("A" & cpt).Value
Sheets(feuille).Range("E" & TabLigFin + 1).Value = Sheets("General").Range("B" & cpt).Value
Sheets(feuille).Range("B" & TabLigFin + 4).Value = Sheets("General").Range("D" & cpt).Value
Sheets(feuille).Range("D" & TabLigFin + 2).Value = Sheets("General").Range("C" & cpt).Value
Sheets(feuille).Range("C" & TabLigFin + 5).Value = Sheets("General").Range("E" & cpt).Value
Sheets(feuille).Range("C" & TabLigFin + 6).Value = Sheets("General").Range("F" & cpt).Value
'insertion case à cocher à coté de chque tableau
Sheets(feuille).Range("F" & TabLigFin + 11).Value = 0
'a = "=" + feuille + "!F" + TabLigFin
End If
Next
Next
Sheets("General").Select
Application.ScreenUpdating = True
Exit Sub
'Creation du nom des pages correspondant au nom des portefeuilles
CreationFeuille:
Worksheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = feuille
Resume
End Sub
Merci
Bonne après midi
Stéphane
J'ai des soucis avec une de mes macros appelée "MàJ Onglet ptf"
Un peu d'explications:
Les valeurs dans la feuille General sont une importation de données, que je dois effectuer 2 fois par jour.
Actuellement, j'ai 2 onglets de créé pour les ptf 1 et 2, et je voudrai obtenir une mise à jour des onglets du classeur
en cliquant sur " MàJ Onglets Ptf" et mettre en format chaque nouvel onglet
J'ai bien commencé mais ça bug encore
En pièce jointe, le fameux fichier et ci dessous la macro défectueuse:
Sub MAJ_Onglet_Ptf()
'
' remet à jour les onglets du classuers avec les nouveaux ptf
'et complète chaque onglet avec le nombre de tableau nécéssaire
'
'Variables
Dim TabLigFin As Integer
Dim cpt As Integer
Dim CptFin As Integer
Dim feuille As String
Dim Ongletptf As Worksheet
'Création de d'autant de tableaux necessaire par portefeuille
Application.ScreenUpdating = False
CptFin = Sheets("General").Range("A65536").End(xlUp).Row
For cpt = 2 To CptFin
feuille = Sheets("General").Range("B" & cpt)
'créer onglet que s'il n'existe pas encore
For Each Ongletptf In ActiveWorkbook.Worksheets
If feuille = Ongletptf.Name Then
Else
On Error GoTo CreationFeuille
TabLigFin = Sheets(feuille).Range("B65536").End(xlUp).Row + 1
Sheets(feuille).Columns("A:A").Select
Selection.ColumnWidth = 12
ActiveSheet.Buttons.Add(0, 14.25, 59.25, 20).Select
Selection.OnAction = "Autpen"
Selection.Characters.Text = "Macros"
Sheets(feuille).Columns("C:C").Select
Selection.ColumnWidth = 18
Sheets(feuille).Columns("D").Select
Selection.ColumnWidth = 18
Sheets(feuille).Columns("E:E").Select
Selection.ColumnWidth = 40
Sheets(feuille).Columns("F:F").Select
Selection.ColumnWidth = 1.47
Sheets(feuille).Range("A1").Select
On Error GoTo 0
If TabLigFin = 2 Then TabLigFin = 1
Sheets("General").Range("AA1:AE12").Copy Sheets(feuille).Range("B" & TabLigFin)
Sheets("General").Range("AA1:AE12").Copy
Sheets(feuille).Range("B" & TabLigFin).PasteSpecial Paste:=xlAll
Sheets(feuille).Range("C" & TabLigFin + 1).Value = Sheets("General").Range("A" & cpt).Value
Sheets(feuille).Range("E" & TabLigFin + 1).Value = Sheets("General").Range("B" & cpt).Value
Sheets(feuille).Range("B" & TabLigFin + 4).Value = Sheets("General").Range("D" & cpt).Value
Sheets(feuille).Range("D" & TabLigFin + 2).Value = Sheets("General").Range("C" & cpt).Value
Sheets(feuille).Range("C" & TabLigFin + 5).Value = Sheets("General").Range("E" & cpt).Value
Sheets(feuille).Range("C" & TabLigFin + 6).Value = Sheets("General").Range("F" & cpt).Value
'insertion case à cocher à coté de chque tableau
Sheets(feuille).Range("F" & TabLigFin + 11).Value = 0
'a = "=" + feuille + "!F" + TabLigFin
End If
Next
Next
Sheets("General").Select
Application.ScreenUpdating = True
Exit Sub
'Creation du nom des pages correspondant au nom des portefeuilles
CreationFeuille:
Worksheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = feuille
Resume
End Sub
Merci
Bonne après midi
Stéphane