Re : trier et afficher sur une feuille de reporting
Bonjour
Voici le macro qui exporter les donnees :
Sub NewExcelDoc()
'
' NewExcelDoc Macro
Dim MonFichier As String, chemin As String
Dim wbExcel As Workbook
MonFichier = "Doc_" & Format(Now, "yyyymmdd") & ".xlsx"
chemin = "J:\VBA\"
ActiveWorkbook.SaveAs Filename:=chemin & MonFichier, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
' Set wbExcel = workbooks.Insert(chemin & MonFichier)
' Set wbExcel = workbooks.Open(chemin & MonFichier)
Dim FORMAT_EXPORT As CellFormat
FORMAT_EXPORT wbExcel
Dim ws As Worksheet
Set wbExcel = wbExcel.Worksheets("Doc_")
With ws.Cells
.VerticalAlignment = xlCenter
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
.HorizontalAlignment = xlGeneral
.ReadingOrder = xlContext
End With
Range("B2").Select
ActiveWindow.LargeScroll ToRight:=1
Range("B2:BD2").Select
Selection.Insert Shift:=xlDown
Range("A3:V3").Select
Range("V3").Activate
Selection.Copy
Range("B2").Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Range("B2").Select
Application.CutCopyMode = False
Selection.Cut
Columns("G:G").Select
Rows("1:1").RowHeight = 24
Range("B1").Select
ActiveCell.FormulaR1C1 = "ID"
Range("B1").Select
ActiveCell.FormulaR1C1 = "DIAM"
Range("M1").Select
ActiveCell.FormulaR1C1 = "ANNEE_"
Range("O1").Select
ActiveCell.FormulaR1C1 = "PAS"
Range("F1").Select
ActiveCell.FormulaR1C1 = "PRESSI"
Range("I1").Select
ActiveCell.FormulaR1C1 = "RB"
Range("K1").Select
ActiveCell.FormulaR1C1 = "REVE"
Range("U1").Select
ActiveCell.FormulaR1C1 = "NUANCE"
Range("AA1").Select
ActiveCell.FormulaR1C1 = "AU"
Range("BC1").Select
ActiveCell.FormulaR1C1 = "CO"
ActiveCell("Q1").Select
Rows("1:1").Select
Selection.AutoFilter
End Sub
Il genere le fichier mais il n'exporte rien.
Et le macro qui trie :
Sub Recherche_Statut_1()
Dim statut As String, commentaire As Integer
Dim cible As String
cible = "N,A,F"
Dim Statut_avant As String
Dim Statut_apres As String
Dim N, A, F As String
Statut_avant = ""
Statut_apres = ""
If InStr(cible, Range("AM1")) = 0 Then
Statut_avant = Statut_apres
' <= la valeur à tester (ici, le statut)
N = N ' = la valeur = 5
commentaire = "5 "
MsgBox "5"
ElseIf InStr(cible, Range("AM1")) = 0 Then
N = A ' = si la valeur = 1
commentaire = "1"
MsgBox "1"
Statut_avant = Statut_apres
' <= la valeur à tester (ici, le statut)
N = A ' = la valeur = 1
commentaire = "1 "
ElseIf InStr(cible, Range("AM1")) = 0 Then
Statut_avant = Statut_apres
' <= la valeur à tester (ici, le statut)
N = F ' = la valeur = 2
commentaire = "2 "
MsgBox "2"
ElseIf InStr(cible, Range("AM1")) = 0 Then
Statut_avant = Statut_apres
' <= la valeur à tester (ici, le statut)
A = N ' = la valeur = 4
commentaire = "4"
MsgBox "4"
ElseIf InStr(cible, Range("AM1")) = 0 Then
Statut_avant = Statut_apres
' <= la valeur à tester (ici, le statut)
A = A ' = la valeur = 5
commentaire = "l'impact nul"
MsgBox "5"
ElseIf InStr(cible, Range("AM1")) = 0 Then
Statut_avant = Statut_apres
' <= la valeur à tester (ici, le statut)
A = F ' = la valeur = 2
commentaire = "2"
MsgBox "2"
ElseIf InStr(cible, Range("AM1")) = 0 Then
Statut_avant = Statut_apres
' <= la valeur à tester (ici, le statut)
F= N ' = la valeur = 4
commentaire = "4"
MsgBox "4"
ElseIf InStr(cible, Range("AM1")) = 0 Then
Statut_avant = Statut_apres
' <= la valeur à tester (ici, le statut)
F= A ' = la valeur = 3
commentaire = "3"
MsgBox "3"
ElseIf InStr(cible, Range("AM1")) = 0 Then
Statut_avant = Statut_apres
' <= la valeur à tester (ici, le statut)
F= F ' = la valeur = 5
commentaire = "l'impact nul"
MsgBox "0"
Else
Statut_avant = Statut_apres
' <= si la valeur n'est égale à aucune des valeurs ci-dessus
commentaire = "0"
End If
'Commentaire en N1
Range("H1:H33") = commentaire
'il doit insere le resultat dans la colonne du nouveau fichier
End Sub
Il ya des soucis dans les deux macros .
Cdt
Merci d'avance
Sub Recherche()
Dim cible As String
cible = "PROJET_OPTIMISATION"
If InStr(cible, Range("AM1")) = 0 Then
MsgBox "Non"
Else
MsgBox "Oui"
End If
End Sub
Sub Recherche_Statut_1()
Dim statut As String, commentaire As Integer
Dim cible As String
cible = "NDEF,APP,FIA"