Execution auto d'une macro apres MAJ

Desolé du double post mais c'est une autre question genre private Sub ^^

J'arrive a renseigner mes tableaux (post plus bas) mais lorsque que je fais une maj de ma base, celle-ci reprend la forme que j'avais précédemment modifié avec une macro...

Comment faire pour que ma macro de mise en forme se réexecute apres une misa a jour ??

Je vous colle la macro que j'ai noté pour mise en forme et en PJ le tableau que vous pouvez mettre a jour pour voir ce que ca donne et cliquez sur mettre a jour les données pour situer mon probleme

Merci

Sub Macro3()
'
' Macro3 Macro
'

'
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://classic.magictraders.com/pricelists/current-magic", _
        Destination:=Range("$A$1"))
        '.CommandType = 0
        .Name = "current-magic-weekly"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlAllTables
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
    Call Refresh
End Sub

Sub Refresh()
Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(30, 1), Array(38, 1), Array(45, 1), Array(53, 1), _
        Array(61, 1), Array(69, 1), Array(76, 1)), TrailingMinusNumbers:=True
End Sub

le probleme se situe sur la feuil1 lors de la MAJ :

Merci encore...

PS : Noter les question, c'est bien, ca me permet de reflechir... Du coup j'ai testé cela :

Sub update()
'
' update
'
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(30, 1), Array(38, 1), Array(45, 1), Array(53, 1), _
        Array(61, 1), Array(69, 1), Array(76, 1)), TrailingMinusNumbers:=True
    Columns("G:Z").Delete Shift:=xlToLeft
End Sub

Ca fonctionne mais me damande de valider le remplacement des données car cellule a coté remplie... un moyen de dire oui direct dans ma macro ??

Même remodifié en supprimant les colonne superflu qui s"accumule au nombre d'update ^^ je veux virer la colonne C aussi, je le note comment ? <= Trouvé, en recopiant la formule des G;Z avec C;c....

bonjour,

essaye en ajoutant la ligne suivante dans les paramètres de ton query

.PreserveColumnInfo = True

une position particuliere dans le query car ca passe pas ??

re bonjour,

oublie la proposition précédente.

est-ce que ceci te donne le résultat que tu souhaites ?

Sub update()
'
' update
'

   Selection.QueryTable.Refresh BackgroundQuery:=False
   Columns("B:Z").Delete Shift:=xlToLeft
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(30, 1), Array(38, 1), Array(45, 1), Array(53, 1), _
        Array(61, 1), Array(69, 1), Array(76, 1)), TrailingMinusNumbers:=True

End Sub

Super, très bonne idée... tu as fait supprimer d'abord B à Z puis recopier en A les info

Great Job, y avais pas pensé ^^

Maintenant me pense sur l'automatisation, que ca se fasse à l'ouverture du classeur

Bonjour,

Sinon, de façon générale, pour éviter les messages d'alerte :

Application.DisplayAlerts = False

Remettre à True ensuite.

Maintenant me pense sur l'automatisation, que ca se fasse à l'ouverture du classeur

dans ThisWorkbook :

Private Sub Workbook_Open()
    Update
End Sub

Si nécessaire activer la feuille avant.

eric

Je dois faire un truc de travers, chaque fois que j'enregistre mon classeur, mes macro disparaisse ??

Je l'enregistre pourtant en CSV ??

Eric : je peux coller toutes mes macro dans this workbook ??

Bon vais essayer de me refaire un classeur avec toute ces information glanées

Thx Guys

Re,

un .csv est un fichier texte sans rien d'autre.

Il faut enregistrer en .xlsx, ou en .xlsm s'il y a des macros.

je peux coller toutes mes macro dans this workbook

Ce module est prévu pour les évènements concernant le classeur.

eric

Merci Chef, comme ca je perd plus mes macros ^^

je continue mes test, de la balle cet Excel 2013

J'ai collé ton code

Private Sub Workbook_Open()
    Update
End Sub

et il me dit error Sub ou Function non defini ?? <= j'ai compris, suis un ane ^^ j'ai changé le nom de la macro update depuis hier ^^

Rechercher des sujets similaires à "execution auto macro maj"