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

macro excel dans un batch.

kamsy

XLDnaute Nouveau
bonjour,
je voudrai automatisé une macro dans un fichier batch
j'utilise excel 2010

je n'ai aucune idée de comment je pourrai faire.
voici mon code

Merci pour vos réponse
 

camarchepas

XLDnaute Barbatruc
Re : macro excel dans un batch.

Bonjour ,

Déjà plus court en enlevant les chutes de coupe de l'enregistreur

Ma boule de cristal est en fusion , mais rien n'y fait .....

Bon sérieusement ,
donnes nous un modele de fichier texte et la présentation que tu veux obtenir en Excel ?

un batch peut simplement consister à ouvrir un Excel avec macro autostart qui réalise ce que tu souhaites

Pour le moment c'est cela le mystére ?????


Code:
Sub convertisseur()
 '
 ' convertisseur Macro
 ' convertisseur txt en xls

  Workbooks.OpenText Filename:="D:\Envoi_mail\stat_du_mois.txt", Origin:= _
 xlWindows, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, _
 1), Array(10, 1), Array(20, 1), Array(30, 1), Array(63, 1), Array(81, 1)), _
 TrailingMinusNumbers:=True
 Range("D51555").Select
 Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
 SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
 ReplaceFormat:=False

 Selection.NumberFormat = "0.00"
 Rows("1:2").Select
 Selection.Delete Shift:=xlUp
 ActiveWorkbook.SaveAs Filename:="D:\Envoi_mail\stat_du_mois.xlsx", _
 FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
 ActiveWindow.Close
 End Sub
 

kamsy

XLDnaute Nouveau
Re : macro excel dans un batch.

bonjour Camar et merci de ta réponse

voici les entête que je veux mettre en place

entité | flux | banque | total_montant | total_transaction | total_fichier

il y a 6 colonnes et un nombre de ligne infini
j'ai utilisé le code en faisant l'enregistreur de la macro.
à la base j'ai un fichier Txt que je converti en xls et qui est mon résultat

mon scroll permet de modifé les "." par les ","
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : macro excel dans un batch.

RE ,
et non ,
c'est ici que tu remplaces le . par une ,

ok , moi , je sais mais sans le fichier texte , je peut rien vérifier .

Code:
Range("D51555").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
 

kamsy

XLDnaute Nouveau
Re : macro excel dans un batch.

je sais que c'est difficile de travailler à l'aveugle.
j'ai des données qui sont assez confidentiel et qui porte le nom de certaine entreprise, donc je ne veux pas étaler tout ça.
j'espère que tu comprendras. envoi moi ton email en pv et je t enverrai le fichier si tu veux bien,

je pense que tu as saisie mon problème.
exécuter une macro à l'aide d'un batch et avoir un fichier enregistrer dans un endroit precis en sachant que cette macros sera exécuter tous les mois et donc ecraser le fichier précédent
 

kamsy

XLDnaute Nouveau
Re : macro excel dans un batch.


les données sont allignées; ils sont dans un fichier txt. j'ai mis ma macros en place que tu trouveras au début et qui me permet de convertir le txt en xls
il y a , a peu pres 300 lignes
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : macro excel dans un batch.

Donc ,
on part sur le principe que ta macro fonctionne .
pour la faire exécuter toutes les X temps,
Le plus simple est de l'embarquer dans le classeur de synthese dans un module standard,

ensuite dans le module thisworbook tu utilises l'événementiel open , se produisant à l'ouverture du classeur.

Private Sub Workbook_Open()
call convertisseur
End Sub

puis dans windows
Panneu de config,
outil d'administration
planificateur
bibliotheque du planificateur
clic droit sur la fenetre du milieu
créer une nouvelle tâche ,
régler les paramètres dont le déclencheur à X heure X jour

voilà , voilà

Sinon tu peux intégrer la gestion du timer dans le fichier mais cela nécessite de le laisser ouvert. pour cela que j'utilise le planificateur.

Depuis de nombreuses années maintenant , j'ai des quotidiennes qui tournent chaques nuit, et hormi des éléments extérieurs ou des coupures de courant ça marche du tonnerre
 
Dernière édition:

kamsy

XLDnaute Nouveau
Re : macro excel dans un batch.

bonjour,
tout ça c'est bon
ma macro se lance bien
le seul problème c'est qu'il n'enregistre pas mon fichier et le ferme
je sais qu'il me manque quelquechose au niveau :

Private Sub Workbook_Open()
call convertisseur
End Sub
il manque la fonction d'enregistrer et quitter que je ne sais pas interpréter
 

camarchepas

XLDnaute Barbatruc
Re : macro excel dans un batch.

Voici donc ,

puisque la mise en place est bonne.
un autre élément important est de ne pas lancer la macro sur ouverture de consultation.
on peut par exemple sécuriser avec l'heure prévue du traitement

Code:
Private Sub Workbook_Open()

If Time > "08:00" Then exit sub ' PErmet d'ouvrir le classeur sans l'éxécution de la macro
 call convertisseur
 'Fin du traitement,
 If Workbooks.Count > 1 Then
   'Fermeture de ce classeur et sauvegarde si autre classeur
    ThisWorkbook.Close True
  Else
   'Sauvegarde de ce classeur puis fermeture de l'instance Excel si pas d'autre classeur
   ThisWorkbook.Save
   Application.Quit
 End If
End Sub
 

kamsy

XLDnaute Nouveau
Re : macro excel dans un batch.

c'est pas mal,
mais j'ai pas du tout fait comme ça
je lance un batch du genre
c:\programme files\Microsoft office\office14\excel.ext /cmd/nom de ma macro c:\chemin de mon fichier txt. avec une planification donc l'heure et la date ne figure pas du tout sur mon vba.

je vais essayer de prendre des morceaux de ce que tu m'as donner et te tiens au courant
 

Staple1600

XLDnaute Barbatruc
Re : macro excel dans un batch.

Bonsoir à tous

Bonsoir à tous
kamsy (Bienvenue sur le forum)
NB: Tu parles de batch mais je n'en vois pas la queue d'un ici
C'est une macro VBA pas un batch.

je lance un batch du genre
c:\programme files\Microsoft office\office14\excel.ext /cmd/nom de ma macro c:\chemin de mon fichier txt.

Donc finalement, il y a bien un batch

Suggestion: un script VBS (ou mieux powershell) ferait aussi l'affaire et se manipule plus facilement avec la planificateur de tâches.
Si intéressé, je peux poster un exemple de VBS (ou powershell) , sinon on en restera au stade de la suggestion

PS: kamsy : tu ne salues jamais les membres du forum qui te souhaitent la bienvenue sur celui-ci (cf mon précédent message) ou tu as simplement zappé mon passage dans ton fil
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…