begin process at 2012 02 13 12:26:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBScript

 > 

vbscript : modification d'un fichier excel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

vbscript : modification d'un fichier excel

mardi 16 octobre 2007 à 04:21:23 | vbscript : modification d'un fichier excel

mitsh666

Membre Club
Bonjour, J'ai un fichier excel dont le style est déjà configuré (taille colonnes, taille lignes, font, ...). Pour conserver ces paramètres, je veux l'ouvrir et modifier le contenu. Pour la fermeture, ça peut se faire à la main et peu importe s'il me demande d'enregistrer à la fermeture. quelqu'un a-t-il une idée ou un bout d'idée? Merci d'avance mitsh666
mardi 16 octobre 2007 à 04:59:16 | Re : vbscript : modification d'un fichier excel

mitsh666

Membre Club
re... bon ben j'ai trouvé. Par contre, je ne comprend pas pourquoi ça marche. On ouvre l'application, puis on ouvre le fichier (jusque la ok). Mais comment se fait-il que ça ne soit pas objSpread qui doit être utilisé à la place de objExcel dans la 3ème ligne? (objExcel.Cells(1,..... ). C'est pourtant objSpread qui est le fichier excel ouvert!? si quelqu'un peut m'expliquer le pourquoi du comment? Set objExcel = CreateObject("Excel.Application") Set objSpread = objExcel.Workbooks.Open("c:\temp\exceltest.xls") objExcel.Cells(1, 1).Value = "tst222sts" objExcel.Quit
mardi 16 octobre 2007 à 09:26:44 | Re : vbscript : modification d'un fichier excel

mitsh666

Membre Club
rebonjour,

J'aimerai pouvoir ajouter directement le texte ci-dessous sur le fichier excel :

"Title 11" & chr(9) & "Title 2" & chr(9) & "Title 3" & chr(9) & "Title 4" & chr(13) & "Value 1" & chr(9) & "Value 2" & chr(9) & "Value 3" & chr(9) & "Value 4"

chr(9) étant des TAB et chr(13) étant des return. le problème c'est que lors de l'écriture, il indique des carrés blancs à la place.

merci

mitsh666
mardi 16 octobre 2007 à 12:31:14 | Re : vbscript : modification d'un fichier excel

JMO

Membre Club


 Bonjour,

Ci-dessous un exemple simple:

Const MonFichierExcel = "D:\SCRIPTS\Fichiers\Exemple.xls"  

Dim objExcel, objClasseur
Set objExcel = CreateObject("Excel.Application")
Set objClasseur = objExcel.Workbooks.Open(MonFichierExcel)
objExcel.DisplayAlerts = False  'enlève l'alerte (oui=True, non=False)
objExcel.Application.Visible = True 'Cache le classeur (oui=True, non=False)

objExcel.ActiveWorkbook.Sheets("Exemple1").Select   'selection de mon onglet

objExcel.Cells(1, 1).Value = "Title1"
objExcel.Cells(1, 2).Value = "Title2"
objExcel.Cells(1, 3).Value = "Title3"
objExcel.Cells(1, 4).Value = "Title4"

objExcel.Cells(2, 1).Value = "Value1"
objExcel.Cells(2, 2).Value = "Value2"
objExcel.Cells(2, 3).Value = "Value3"
objExcel.Cells(2, 4).Value = "Value4"

objExcel.ActiveWorkbook.SaveAs MonFichierExcel 'sauvegarde le classeur
objExcel.ActiveWorkbook.Close 'Fermeture d'Excel
objExcel.DisplayAlerts = True 'remet l'alerte  oui=True   non=False
objExcel.Application.Visible=True 'remet la visibilité
objExcel.Quit

Set objExcel = Nothing
Set objClasseur = Nothing


Pour écrire x cellules, il faut "imbriquer" 2 boucles (1 pour la colonne, 1 pour la ligne).

jean-marc
mardi 16 octobre 2007 à 15:11:13 | Re : vbscript : modification d'un fichier excel

mitsh666

Membre Club
Bonjour Jean-Marc,

Merci pour la réponse...
question cependant : Sans les lignes suivantes, cela fonctionne aussi. sont-elles cependant nécessaire pour éviter tout problème à la crosoft?

objExcel.DisplayAlerts = False  'enlève l'alerte (oui=True, non=False)
objExcel.Application.Visible = True 'Cache le classeur (oui=True, non=False)

objExcel.ActiveWorkbook.Sheets("Exemple1").Select   'selection de mon onglet

Nouvelles questions :
quand j'écris une longue phrase dans une case, j'aimerai qu'elle se prolonge dans les cases vides de sa droite. avec Cell, tout est dans la case. de plus la case prend des dimension importantes pour tout voir. Y a-t-il une façon d'activer ce mode?

De plus, j'aimerai bien utiliser les tab et return (chr(13) et chr(9)) mais je n'arrive pas à le faire accepter par cells. Y a-t-il un moyen d'y parvenir????

mitsh666
mardi 16 octobre 2007 à 17:40:52 | Re : vbscript : modification d'un fichier excel

JMO

Membre Club
Réponse acceptée !


Re,


Les instructions
objExcel.DisplayAlerts=False ' True, False
objExcel.ActiveWindow.DisplayGridlines = False ' True, False
objExcel.Application.Visible=True ' True, False

sont conventionnelles et non obligatoires.
Mais les modifications en début de script devront être reportées à l'inverse en fin de script.

Pour le sheet, s'il y a un seul onglet, inutile de préciser (1) puisqu'implicite.
Pour redimensionner les colonnes:
'Mise en forme des colonnes
objExcel.Columns("A:B").Select
objExcel.Selection.Columns.AutoFit
ObjExcel.Range("A1").Select

Pour le vbTab, n'étant pas vbaiste, je ne saurais répondre (je plaisante) que par l'utilisation (déconseillée) de sendkeys.

jean-marc
mercredi 17 octobre 2007 à 09:21:55 | Re : vbscript : modification d'un fichier excel

mitsh666

Membre Club
Bonjour,

En fait si je pose la question, c'est que lors de ma première création d'un fichier excel ça marchait bien (cf code ci-dessous). Mais si on écrit comme sur cette soluce, on écrase le contenu du fichier.

    Dim FSys
    Dim MonFic

    Set FSys = CreateObject("Scripting.FileSystemObject")
    Set MonFic = FSys.CreateTextFile(FileNameSave)
    With MonFic 'Pour écrire dans le fichier texte
        .write "text1" & chr(13) & "Text2"
    End With

Mais je comprend bien que c'est déconseillé quand ça fonctionne pas tout le temps .
Merci

mitsh666
mercredi 17 octobre 2007 à 12:53:54 | Re : vbscript : modification d'un fichier excel

JMO

Membre Club


 Bonjour à tous,

Bonjour mitsh666,

Il ne faut pas utiliser la méthode "CreateTextFile" pour créer un .xls
   Dim fso, MyFile
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set MyFile = fso.CreateTextFile("d:\testfile.xls", True)
   MyFile.WriteLine("Ceci est un test.")
   MyFile.Close

Cet exemple crée effectivement le fichier et écrit dans la cellule(1,1).

Pour créer un .xls:
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add()
Set objWorksheet = objWorkbook.Worksheets(1)

objWorksheet.Cells(1,1) = "Dataset 1"
objWorksheet.Cells(1,2) = "Dataset 2"


Après re-re-lecture de ta question:
<< J'ai un fichier excel dont le style est déjà configuré (taille colonnes, taille lignes, font, ...)


jean-marc
mercredi 17 octobre 2007 à 14:44:23 | Re : vbscript : modification d'un fichier excel

mitsh666

Membre Club
 
???
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add()
Set objWorksheet = objWorkbook.Worksheets(1)

objWorksheet.Cells(1,1) = "Dataset 1"
objWorksheet.Cells(1,2) = "Dataset 2"


ça crée pas un fichier... ça ouvre excel et ça ouvre une feuille. Mais j'ai compris l'astuce. voici d'ailleurs la fonction pour créer un fichier excel pour ceux qui la désirent :

function fctCreateExcelFile(ByVal FilePath)
    Dim objExcel, objClasseur, objWorkbook, objWorksheet
    Set objExcel = CreateObject("Excel.Application")
    objExcel.DisplayAlerts = False  'enlève l'alerte (oui=True, non=False)
    'objExcel.Application.Visible = True 'Cache le classeur (oui=True, non=False)
   
    Set objWorkbook = objExcel.Workbooks.Add()
    Set objWorksheet = objWorkbook.Worksheets(1)
   
    objExcel.ActiveWorkbook.SaveAs FilePath 'sauvegarde le classeur
    objExcel.ActiveWorkbook.Close 'Fermeture d'Excel
    objExcel.DisplayAlerts = True 'remet l'alerte  oui=True   non=False
    'objExcel.Application.Visible=True 'remet la visibilité
    objExcel.Quit
   
    Set objExcel = Nothing
    Set objClasseur = Nothing
end function


et pour modifier ce qu'il y a dans le fichier excel :

function fctModifyExcelFile(ByVal FilePath)
    Dim objExcel, objClasseur
    Set objExcel = CreateObject("Excel.Application")
    Set objClasseur = objExcel.Workbooks.Open(FilePath)
    objExcel.DisplayAlerts = False  'enlève l'alerte (oui=True, non=False)
    'objExcel.Application.Visible = True 'Cache le classeur (oui=True, non=False)
   
    objExcel.ActiveWorkbook.Sheets(1).Select   'selection de mon onglet
   
    objExcel.Cells(1, 1).Value = "Title12"
    objExcel.Cells(1, 2).Value = "Title22"
    objExcel.Cells(1, 3).Value = "Title32"
    objExcel.Cells(1, 4).Value = "Title42"
   
    objExcel.Cells(2, 1).Value = "Value12"
    objExcel.Cells(2, 2).Value = "Value22"
    objExcel.Cells(2, 3).Value = "Value32"
    objExcel.Cells(2, 4).Value = "Value42"
   
    'objExcel.ActiveWorkbook.SaveAs FilePath 'sauvegarde le classeur
    objExcel.ActiveWorkbook.Save'sauvegarde le classeur
    objExcel.ActiveWorkbook.Close 'Fermeture d'Excel
    objExcel.DisplayAlerts = True 'remet l'alerte  oui=True   non=False
    'objExcel.Application.Visible=True 'remet la visibilité
    objExcel.Quit
   
    Set objExcel = Nothing
    Set objClasseur = Nothing
end function

J'ai préféré éliminer la ligne objExcel.Application.Visible afin de ne pas voir l'ouverture d'excel

Angel
mercredi 17 octobre 2007 à 14:45:39 | Re : vbscript : modification d'un fichier excel

mitsh666

Membre Club
Merci de l'aide Jean-Marc

mitsh666

1 2

Cette discussion est classée dans : fichier, vbscript, taille, excel, modification


Répondre à ce message

Sujets en rapport avec ce message

vbscript+excel [ par dghaine ] BonjourJ'ai créer un script en vb qui copie et colle des données d'un fichier excel source vers un fichier excel cible qui génére un graphique, modifi Message de modification fichier excel [ par avyrex1926 ] Bonjour à tous,J'ai un fichier excel, que je dois remplire régulièrement en entrant des données.J'ai des onglets avec le nom de tous les mois de l'ann VBScript : calculer la taille réellement occupée par un fichier [ par d_idaho ] Bonjour,La propriété Size d'un FileSystemObject correspond à la propriété Taille de la fenêtre Propriétés d'un dossier ou d'un fichier < VB.NET + Excel + vbscript [ par ghofrane ] Bonjour,je suis une débutante en VB. NET .je veux savoir si j'ai un fichier Excel comment je peux manipuler à l'intérieur d'un prog VB.NET pour tirer Fermeture d'un fichier Excel sans modification [ par tom42 ] Bonjour,J'utilise des feuilles Excel dans VB que je trie suivant des critères différents.Apres avoir ouvert un fichier Excel et récupéré les informati Taille d'1 Fichier Excel incontrôlée [ par Shaker ] J'ai dévelloppe une petite appli sous Excel avec vba, et la taille de mon fichier augmente par ex, seulement en l ouvrant et le reenregistrant !! La t Modification d'un objet Excel sous VB [ par asoka ] Bonjour,J'ai cherché sur le site la réponse à ma question mais je n'ai pas trouvé.Voilà ce que je veux faire :- j'ai un fichier Excel "Gabari.xls" qui excel taille fichier trop importante [ par marietotsie ] j'ai créer un fichier excel avec de nombreux macro, et au fur et à mesure que je modifie mes macro et que je les tests, la taille de mon fichier augme lien excel en vbscript [ par kobejul08 ] bonjour,je n'ai jamais fait de vbscript et je dois réaliser un lien vers un fichier excel.Donc d'un software je dois écrire dans un fichier excel qq u Taille fichier Excel avec userform [ par nico39 ] Bonjour à tous, j´ai cherché sur le forum mais je n´ai rien trouvé concernant mon problème. En effet, je voudrais savoir dans quelle mesure la présen


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales