Macro avec condition

badoum66

XLDnaute Nouveau
Bonjour,

J'ai une macro qui exécute 2 TCD.

Est-il possible d'insérer une boite de dialogue entre les 2 tableaux. Exemple " voulez vous executer le deuxieme tableau" Oui la macro execute le 2ème tableau. Non la macro se termine.

Merci pour vos réponse
 

cbea

XLDnaute Impliqué
Re : Macro avec condition

Bonjour badoum66,

Voici une solution.
Code:
    Dim repMsg As Integer
    
    repMsg = MsgBox("Voulez-vous exécuter le deuxième tableau ?", vbYesNo, "TCD...")

    If repMsg = vbYes Then
        ' Actualiser le 2me TCD
    End If
 

badoum66

XLDnaute Nouveau
Re : Macro avec condition

Merci pour ta réponse,

Si je fait non le deuxième TCD s'exécute.

Ci dessous copie de ma macro
J'ai inserer le bout de programme entre les 2 TDC.



Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 18/05/2008 par abdel
'

'
Cells.Select
Range("A1").Activate
Selection.Copy
Sheets.Add
ActiveSheet.Paste
Range("A1").Select
Rows(1).EntireRow.Delete Shift:=xlUp
Range("Q1").Select
ActiveCell.CurrentRegion.Sort Key1:=Range("Q1"), Order1:=xlAscending, Header:=xlYes
donnee1 = ActiveCell
ActiveCell.Offset(1, 0).Select
While ActiveCell <> ""
If ActiveCell = donnee1 Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
donnee1 = ActiveCell
ActiveCell.Offset(1, 0).Select
Else
donnee1 = ActiveCell
ActiveCell.Offset(1, 0).Select
End If
Wend
Sheets("Feuil1").Columns(28).Replace "A traiter par le Réceptionnaire", "REC"
Sheets("Feuil1").Columns(28).Replace "Réception non conforme", "RNC"
Sheets("Feuil1").Columns(28).Replace "Ne pas tenir compte de la règle en exception", "PAS"
Sheets("Feuil1").Columns(28).Replace "Demande d'avoir", "DMA"
Sheets("Feuil1").Columns(28).Replace "A traiter par l'Acheteur", "ACH"
Sheets("Feuil1").Columns(28).Replace "Modification saisie de commande: ajout avenant", "MCA"
Sheets("Feuil1").Columns(28).Replace "Modification saisie de la réception", "MDR"
Sheets("Feuil1").Columns(28).Replace "A traiter par le CCF", "CCF"
Sheets("Feuil1").Columns(28).Replace "Retour - demande d'avoir", "RDA"
Sheets("Feuil1").Columns(28).Replace "Attente livraison complémentaire", "ALC"
Sheets("Feuil1").Columns(28).Replace "Modification saisie de la commande: prix unitaire", "MCP"
Range("BD1").Select
ActiveCell.FormulaR1C1 = "Échéance"
With ActiveCell.Characters(Start:=1, Length:=8).Font
.Name = "Arial Unicode MS"
.FontStyle = "Gras"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With

[BD2].FormulaR1C1 = "=IF(R[-0]C[-36]<TODAY(),""Echue"",""Non echue"")"
Range("BD2").AutoFill Destination:=Range("BD2:BD" & [A65000].End(xlUp).Row)

Range("Feuil1!A1:BD" & [A65000].End(xlUp).Row).Name = "plage"
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="plage").CreatePivotTable TableDestination:="", TableName:= _
"Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"Motif Except.").Subtotals = Array(False, False, False, False, False, False, False, _
False, False, False, False, False)
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Échéance"). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
ActiveSheet.PivotTables("Tableau croisé dynamique2").AddFields RowFields:= _
Array("Échéance", "Données"), ColumnFields:="Motif Except."
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"N° Pièce")
.Orientation = xlDataField
.Position = 1
End With
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"Montant Total HT Facture").Orientation = xlDataField
ActiveWorkbook.ShowPivotTableFieldList = True

Dim repMsg As Integer

repMsg = MsgBox("Y a t'il un impact CLI ?", vbYesNo, "TCD...")

If repMsg = vbYes Then
' Actualiser le 2me TCD
End If

Sheets("Feuil1").Select
Range("Feuil1!A1:BD" & [A65000].End(xlUp).Row).Name = "plage"
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="plage").CreatePivotTable TableDestination:="", TableName:= _
"Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Motif Except.").Subtotals = Array(False, False, False, False, False, False, False, _
False, False, False, False, False)
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("BU DEST"). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Échéance"). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields:= _
Array("BU DEST", "Échéance", "Données"), ColumnFields:="Motif Except."
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"N° Pièce")
.Orientation = xlDataField
.Position = 1
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Montant Total HT Facture").Orientation = xlDataField
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("BU DEST" _
)
.PivotItems("02177").Visible = True
.PivotItems("").Visible = False
End With
Range("A12").Select


End Sub
 

Moulinois

XLDnaute Occasionnel
Re : Macro avec condition

Bonjour,

Code:
If repMsg = vbYes Then
' Actualiser le 2me TCD
End If
Signifie que tu dois mettre la partie de ton code qui porte sur le secon TCD à la place de " ' Actualiser le 2me TCD"
(Cette seconde partie ne s'éxécutera donc que si l'on répond oui)


@+
 

cbea

XLDnaute Impliqué
Re : Macro avec condition

re,

A tester :
Code:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 18/05/2008 par abdel
'

'
    Dim repMsg As Integer
    
    Cells.Select
    Range("A1").Activate
    Selection.Copy
    Sheets.Add
    ActiveSheet.Paste
    Range("A1").Select
    Rows(1).EntireRow.Delete Shift:=xlUp
    Range("Q1").Select
    ActiveCell.CurrentRegion.Sort Key1:=Range("Q1"), Order1:=xlAscending, Header:=xlYes
    donnee1 = ActiveCell
    ActiveCell.Offset(1, 0).Select
    
    While ActiveCell <> ""
        If ActiveCell = donnee1 Then
            ActiveCell.EntireRow.Delete
            ActiveCell.Offset(-1, 0).Select
            donnee1 = ActiveCell
            ActiveCell.Offset(1, 0).Select
        Else
            donnee1 = ActiveCell
            ActiveCell.Offset(1, 0).Select
        End If
    Wend
    Sheets("Feuil1").Columns(28).Replace "A traiter par le Réceptionnaire", "REC"
    Sheets("Feuil1").Columns(28).Replace "Réception non conforme", "RNC"
    Sheets("Feuil1").Columns(28).Replace "Ne pas tenir compte de la règle en exception", "PAS"
    Sheets("Feuil1").Columns(28).Replace "Demande d'avoir", "DMA"
    Sheets("Feuil1").Columns(28).Replace "A traiter par l'Acheteur", "ACH"
    Sheets("Feuil1").Columns(28).Replace "Modification saisie de commande: ajout avenant", "MCA"
    Sheets("Feuil1").Columns(28).Replace "Modification saisie de la réception", "MDR"
    Sheets("Feuil1").Columns(28).Replace "A traiter par le CCF", "CCF"
    Sheets("Feuil1").Columns(28).Replace "Retour - demande d'avoir", "RDA"
    Sheets("Feuil1").Columns(28).Replace "Attente livraison complémentaire", "ALC"
    Sheets("Feuil1").Columns(28).Replace "Modification saisie de la commande: prix unitaire", "MCP"
    Range("BD1").Select
    ActiveCell.FormulaR1C1 = "Échéance"
    
    With ActiveCell.Characters(Start:=1, Length:=8).Font
        .Name = "Arial Unicode MS"
        .FontStyle = "Gras"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    
    [BD2].FormulaR1C1 = "=IF(R[-0]C[-36]<TODAY(),""Echue"",""Non echue"")"
    Range("BD2").AutoFill Destination:=Range("BD2:BD" & [A65000].End(xlUp).Row)
    
    Range("Feuil1!A1:BD" & [A65000].End(xlUp).Row).Name = "plage"
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="plage").CreatePivotTable TableDestination:="", TableName:= _
        "Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion10
    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
    ActiveSheet.Cells(3, 1).Select
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Motif Except.").Subtotals = Array(False, False, False, False, False, False, False, _
        False, False, False, False, False)
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Échéance"). _
        Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
        False, False)
    ActiveSheet.PivotTables("Tableau croisé dynamique2").AddFields RowFields:= _
        Array("Échéance", "Données"), ColumnFields:="Motif Except."
    
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("N° Pièce")
        .Orientation = xlDataField
        .Position = 1
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Montant Total HT Facture").Orientation = xlDataField
    ActiveWorkbook.ShowPivotTableFieldList = True
    
    
    repMsg = MsgBox("Y a t'il un impact CLI ?", vbYesNo, "TCD...")
    
    If repMsg = vbYes Then
        Sheets("Feuil1").Select
        Range("Feuil1!A1:BD" & [A65000].End(xlUp).Row).Name = "plage"
        ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="plage").CreatePivotTable TableDestination:="", TableName:= _
            "Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
        ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
        ActiveSheet.Cells(3, 1).Select
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "Motif Except.").Subtotals = Array(False, False, False, False, False, False, False, _
            False, False, False, False, False)
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("BU DEST"). _
            Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
            False, False)
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Échéance"). _
            Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
            False, False)
        ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields:= _
            Array("BU DEST", "Échéance", "Données"), ColumnFields:="Motif Except."
        
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("N° Pièce")
            .Orientation = xlDataField
            .Position = 1
        End With
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "Montant Total HT Facture").Orientation = xlDataField
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("BU DEST")
            .PivotItems("02177").Visible = True
            .PivotItems("").Visible = False
        End With
    End If
    
    Range("A12").Select
End Sub
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 677
Messages
2 090 825
Membres
104 677
dernier inscrit
soufiane12