Manipulation de excel depuis vd

Résolu
fmcvieira Messages postés 10 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 22 avril 2005 - 16 avril 2005 à 23:51
fmcvieira Messages postés 10 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 22 avril 2005 - 18 avril 2005 à 01:08
bonjour à tous

voila je veut imprimer une mshflexgrid et pour ça je passe par Excel
jusque la pas de problème.

mais quelles sont les commandes pour :
- définir la taille d'une colonne (largeur)
- répondre non a la question "voulez vous enregistrer les modification apporte a 'classeur1'"
- que le travaille s'effectue en arrière plan (ou pas )

merci à tous pour votre aide

FmcVieira

5 réponses

valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
18 avril 2005 à 00:32
Re re
Suis fatigué en ce moment .......LOL
Sheet.Columns(1 + 3)..ColumnWidth = .......

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
3
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
17 avril 2005 à 01:32
Salut,

Pour la largeur des colonne ici la colonne 1 ou A
Feuil1.Columns( 1 ).Width = 50


' Et pour éviter les messages d'alertes pour l'enregistrement


' Le remettre à true en fin d'impression


Application.DisplayAlerts = False



Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
fmcvieira Messages postés 10 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 22 avril 2005
17 avril 2005 à 21:18
Merci pour ton aide Jean-paul
mais ca ne marche pas je ne c'est pas pourquoi mais ça ne marche pas

j'ai tjr le même message "Voulez-vous enregistrer les modifications apportées à 'classeur1'
même avec Application.DisplayAlerts = False

et la commande : Sheet.Columns(1 + 3).Width = 10
me donne une erreur 1004
"impossible de definnir la propriété width de la classe range"

voici mon code
en bref j'essaie je passe ma grid dans excel et j'imprime

Private Sub Command2_Click()
Dim i, j As Integer


Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel


'Ouverture de l'application
Set appExcel = CreateObject("Excel.Application")


'Ajout d'un classeur car à l'ouverture d'Excel il n'y a aucun classeur d'ouvert
appExcel.Workbooks.Add 'Ceci n'est nécessaire que si vous n'ouvrez pas un fichier existant


'Récupération du classeur par défaut
Set wbExcel = appExcel.ActiveWorkbook


'Récupération de la feuille par défaut
Set wsExcel = wbExcel.ActiveSheet
Set Sheet = appExcel.ActiveWorkbook.ActiveSheet





Application.DisplayAlerts = True





For i = 0 To Text1.Text - 1
For j = 0 To Text1.Text - 1
Sheet.Cells(i + 3, j + 3).Value = Grid.TextMatrix(i, j)


'mise en forme de la page
Sheet.Cells(i + 3, j + 3).HorizontalAlignment = xlCenter
Sheet.Cells(i + 3, j + 3).Borders(xlEdgeTop).LineStyle = xlContinuous
Sheet.Cells(i + 3, j + 3).Borders(xlEdgeTop).Weight = xlThin
Sheet.Cells(i + 3, j + 3).Borders(xlEdgeTop).ColorIndex = xlAutomatic
Sheet.Cells(i + 3, j + 3).Borders(xlEdgeBottom).LineStyle = xlContinuous
Sheet.Cells(i + 3, j + 3).Borders(xlEdgeBottom).Weight = xlThin
Sheet.Cells(i + 3, j + 3).Borders(xlEdgeBottom).ColorIndex = xlAutomatic
Sheet.Cells(i + 3, j + 3).Borders(xlEdgeLeft).LineStyle = xlContinuous
Sheet.Cells(i + 3, j + 3).Borders(xlEdgeLeft).Weight = xlThin
Sheet.Cells(i + 3, j + 3).Borders(xlEdgeLeft).ColorIndex = xlAutomatic
Sheet.Cells(i + 3, j + 3).Borders(xlEdgeRight).LineStyle = xlContinuous
Sheet.Cells(i + 3, j + 3).Borders(xlEdgeRight).Weight = xlThin
Sheet.Cells(i + 3, j + 3).Borders(xlEdgeRight).ColorIndex = xlAutomatic


'Sheet.Column(1 + 3).Width = 10


Next j
Next i


appExcel.ActiveWindow.SelectedSheets.PrintOut Copies:=1



'Private Sub Command1_Click()
'Printer.PaintPicture MSFlexGrid1.Picture, 10, 12
'Printer.EndDoc
'end sub


'Sheet.PrintOut











wbExcel.Close 'Fermeture du classeur Excel
appExcel.Quit 'Fermeture de l'application Excel


'Désallocation mémoire
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing
End Sub
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
18 avril 2005 à 00:20
Re,
Autant pour moi, pour excel la commande c'est
ThisWorkbook.Saved = True
En fait tu dis à excel qu'il n'y a pas eu de changement
L'autre code te sert en cas de prog si tu ne veux pas de message d'alerte

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fmcvieira Messages postés 10 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 22 avril 2005
18 avril 2005 à 01:08
Voila ça marche

Encore merci pour ton aide
0
Rejoignez-nous