Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

problème d'execution

  • Initiateur de la discussion Elno
  • Date de début
E

Elno

Guest
Bonjour tout le monde
Je fais actuellement de la mise en forme de données.
Apres avoir importé mes données d'un fichier csv Je met en forme différentes feuilles
Mon problème est le suivant : Si l importation ce fais grace a :ActiveWorkbook.RefreshAll
l'execution de la macro1, qui met en forme toute mes feuilles appar Feuil1 et Synthese, ne se fait pas je voulais savoir si quelqu'un pouvait m aider. Merci d'avance
voici le code de ma macro principale


Sub auto_openn()
' macro principale
'
'
'importation

ActiveWorkbook.RefreshAll


Dim V_Sheet As Worksheet
' selection des feuilles
For Each V_Sheet In Worksheets
V_Sheet.Activate
If ActiveSheet.Name <> 'Feuil1' Then
If ActiveSheet.Name <> 'Synthese' Then
'mise en forme des autres feuilles
Macro1

End If
End If
Next V_Sheet
'mise en forme de la feuille Synthese
Macro2

Sheets('Synthese').Select

End Sub
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

difficile de dire comme cela mais ta maccro se trouv e-t-elle dans le même classeur que tes données ?

Peut-être sinon à modifier en ajoutant le workbook


ActiveWorkbook.RefreshAll


Dim V_Sheet As Worksheet
' selection des feuilles
For Each V_Sheet In ActiveWorkbook.Worksheets

If ActiveWorkbook.V_Sheet.Name <> 'Feuil1' Then
If ActiveWorkbook.V_Sheet.Name <> 'Synthese' Then
'mise en forme des autres feuilles
Macro1

End If
End If
Next V_Sheet
'mise en forme de la feuille Synthese
Macro2

Sheets('Synthese').Select

A voir
 
E

Elno

Guest
Le probleme c'est que je me sert pas que d'excel . Je me sert aussi d 'access . La Feuil1 de mon fichier excel importe les données du fichier csv puis ces données sont retraitées sous access dans un fichier base_de_donnees.mbd puis le meme fichier excel qu au début recupere les données traité par access dans les autres feuilles.
CSV--->Fichier.xls----->Base_de_données.mbd---->Fichier.xls-------->Mise en forme du fichier xls

Vous allez me dire que 'c'est une vrai usine a gaz' et vous avez raison. Toutefois quand je fais manuellement l'opération d'importation puis que j'execute la Macro Test , tout marche.Mon but est de tout automatiser, macro auto_open pour simplifier la vie des utilisateurs.

Je met le code de Macro1 ici si quelqu'un a une idée .
En ce qui me concerne je pense que c'est au niveau des importations et qu'il ne prend pas en compte les données importés du fichier access et qu'il execute macro1 ,vu qu'il n 'a pas pris en compte les données importés, If (Cells(2, 1)) <> '' Then lui demande de ne rien faire

Ps: Si vous avez des suggestions dans le code de Macro1 je suis ouvert a toutes propostions aussi Je suis débutant en Vba. Merci d avance.

Sub Macro1()
'
'
' Macro enregistrée le 12/05/2005 par Elno
'
If (Cells(2, 1)) <> '' Then

'creation de la colonne FIN et des totaux


Range('K1').Select
ActiveCell.FormulaR1C1 = 'FIN'

Selection.Subtotal GroupBy:=11, Function:=xlSum, TotalList:=Array(4, 5, 6, 7 _
, 8, 9, 10), Replace:=True, PageBreaks:=False, SummaryBelowData:=True

'creation de %tage CA %tage dossier plus mise format

Range('G1').Select
Selection.EntireColumn.Insert
ActiveCell.FormulaR1C1 = '%tage CA'
Range('F1').Select
Selection.EntireColumn.Insert
ActiveCell.FormulaR1C1 = '%tage dossier'
Columns('F:F').Select
Selection.NumberFormat = '0.00%'
Selection.ColumnDifferences(ActiveCell).Select
Selection.FormulaR1C1 = '=RC[-1]/RC[-2]'
Columns('H:H').Select
Selection.ColumnDifferences(ActiveCell).Select
Selection.FormulaR1C1 = '=IF(RC[4]=0,'''',IF(RC[-1]=0,'''',RC[-1]/RC[4]))'
Columns('H:H').Select
Selection.NumberFormat = '0.00%'

'mise en forme conditionnel 3%

Columns('F:F').Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
Formula1:='0,03'
Selection.FormatConditions(1).Font.ColorIndex = xlAutomatic
Selection.FormatConditions(1).Interior.ColorIndex = 27

'enleve le condition sur F1

Range('F1').Select
Selection.FormatConditions.Delete

'fige premiere ligne

With ActiveWindow
.SplitColumn = 6
.SplitRow = 17
End With
ActiveWindow.SplitRow = 1
ActiveWindow.SplitColumn = 0
ActiveWindow.FreezePanes = True


'zoom a 60%

ActiveWindow.Zoom = 60

'collonne C F H en gras

Range('C:C,F:F,H:H').Select
Selection.Font.Bold = True

'colone % CA rouge et H1 remis noir

Columns('H:H').Select
Selection.Font.ColorIndex = 3
Range('H1').Select
Selection.Font.ColorIndex = 0

'couleur vert claire entete

Range('A1:L1').Select
With Selection.Interior
.ColorIndex = 35
.Pattern = xlSolid
End With

'mise en forme cellule totaux

Cells(Range('a1').End(xlDown).Row + 1, 4).Select
With Selection.Interior
.ColorIndex = 35
.Pattern = xlSolid
End With
Selection.Font.Bold = True
Cells(Range('a1').End(xlDown).Row + 1, 5).Select
With Selection.Interior
.ColorIndex = 35
.Pattern = xlSolid
End With
Selection.Font.Bold = True
Cells(Range('a1').End(xlDown).Row + 1, 6).Select
With Selection.Interior
.ColorIndex = 35
.Pattern = xlSolid
End With
Selection.Font.Bold = True
Cells(Range('a1').End(xlDown).Row + 1, 7).Select
With Selection.Interior
.ColorIndex = 35
.Pattern = xlSolid
End With
Selection.Font.Bold = True
Cells(Range('a1').End(xlDown).Row + 1, 8).Select
With Selection.Interior
.ColorIndex = 35
.Pattern = xlSolid
End With
Selection.Font.Bold = True
Cells(Range('a1').End(xlDown).Row + 1, 9).Select
With Selection.Interior
.ColorIndex = 35
.Pattern = xlSolid
End With
Selection.Font.Bold = True
Cells(Range('a1').End(xlDown).Row + 1, 10).Select
With Selection.Interior
.ColorIndex = 35
.Pattern = xlSolid
End With
Selection.Font.Bold = True
Cells(Range('a1').End(xlDown).Row + 1, 11).Select
With Selection.Interior
.ColorIndex = 35
.Pattern = xlSolid
End With
Selection.Font.Bold = True
Cells(Range('a1').End(xlDown).Row + 1, 12).Select
With Selection.Interior
.ColorIndex = 35
.Pattern = xlSolid
End With
Selection.Font.Bold = True

'suppression des totaux DIV

Selection.CurrentRegion.Select
Selection.SpecialCells(xlCellTypeFormulas, 16).Select
Selection.ClearContents

'selectionne la case A1

Range('A2').Select

End If

End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…