>>>VRAIMENT URGENT!!!<<< Excel,MDI,Collage special

cs_Zoz Messages postés 6 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 16 février 2004 - 22 avril 2002 à 08:22
cs_DeathAngel Messages postés 117 Date d'inscription vendredi 12 avril 2002 Statut Membre Dernière intervention 13 avril 2007 - 22 avril 2002 à 14:10
Salut,

Bon voila , j'ai pleins de petites questions en esperant que quelqu'un pourra m'aider:

- Donc voila j'ai une variable Excel.application et une excel.workbook . La workbook pointe sur un classeur de la variable application.
J'utilise une interface MDI et je voudrai afficher l'application Excel (ou encore mieux seulement le classeur) dans mon MDI , comment faire ?

- Comment faire aussi pour enlever le menu et les barres d'outils D'excel ?

-Au niveau de l'impression , comment faire pour que l'echelle soit respectée et que l'impression ne prenne pas 2 pags en largeur?

-Comment marche le pastespecial ? J'aurais besoin de coller juste les valeurs , sans les formules . Quels sont les parametres a utiliser ?

-Enfin , dans une fonction du menu (print_click()) ,
J'ouvre un form qui demande les feuilles a imprimer puis apres la Common dialog Box d'impression . Comment fair e pour que cette derniere ne s'affiche qu'une fois le form d'avant fermé ?

Sur ce ,
Merci .

Zoz ,
French AmigaZone www.multimania.com/lazoz

1 réponse

cs_DeathAngel Messages postés 117 Date d'inscription vendredi 12 avril 2002 Statut Membre Dernière intervention 13 avril 2007
22 avril 2002 à 14:10
Salut,

Bon, je vais essayer de répondre à tes questions ;)

- Donc voila j'ai une variable Excel.application et une excel.workbook . La workbook pointe sur un classeur de la variable application.
J'utilise une interface MDI et je voudrai afficher l'application Excel (ou encore mieux seulement le classeur) dans mon MDI , comment faire ?

>Ben là, je vois rien d'autre qu'un contrôle OLE (là, tu ne verra que le classeur). Mais bon, je l'utilise que très rarement. Tu dois l'avoir dans la liste des contrôles (un icône avec OLE écrit dessus, tu peux pas le rater:)). Si tu as besoin d'aide là-dessus en particulier, maile-moi, je vais essayer de me remettre en tête la façon dont on l'utilise =P

- Comment faire aussi pour enlever le menu et les barres d'outils D'excel ?

>Ben si tu utilise le contrôle OLE, plus besoin de faire ça. Sinon, et pour info, tu peux faire ce que tu veux avec les menus. Seule chose à garder à l'esprit : Toujours remettre les menus et autres boutons tels qu'ils étaient au départ !
Donc, voilà comment faire :
/!\ : Ce code fonctionne en VBA EXCEL, pour que cela fonctionne en VB, je pense qu'il faut rajouter le nom de ta référence au workbook (ex : CommandBars(i) -> wkbMonWorkBook.CommandBars(i))

Dans le Général :

'Tableau contenant l'état des barres d'outils visible ou non
Global Etat_Barre_Outil() As Boolean

Macro à appeler à l'ouverture du workbook

Sub Masque_barre_outils()
'Cette procédureb masque les barres d'outils d'Excel
'avant de les masquer elle sauvegarde les barres d'outils
'pour les remettre avant de quitter
Dim i As Integer

On Error GoTo Masque_barre_outils_Err

'On redimensionne le tableau d'état des barres d'outils avec le nombre de barres d'outils
ReDim Preserve Etat_Barre_Outil(CommandBars.Count)

For i = 1 To CommandBars.Count
On Error Resume Next
'On stocke l'état de la barre d'outil
Etat_Barre_Outil(i) = CommandBars(i).Visible
CommandBars(i).Visible = False
Next i

Application.DisplayFormulaBar = False

Masque_barre_outils_End:
Exit Sub

Masque_barre_outils_Err:
MsgBox "Erreur " & Err.Number & " : " & Err.Description
Resume Masque_barre_outils_End
Resume

End Sub

Puis, sur la fermeture du workbook :

Sub Affiche_barre_outils()
'Cette procédure affiche les barres d'outils d'Excel
'qui étaient visible avant le lancement de l'application
Dim i As Integer

On Error GoTo Affiche_barre_outils_Err

For i = 1 To CommandBars.Count
On Error Resume Next
CommandBars(i).Visible = Etat_Barre_Outil(i)
Next i

Application.DisplayFormulaBar = True

Affiche_barre_outils_End:
Exit Sub

Affiche_barre_outils_Err:
MsgBox "Erreur " & Err.Number & " : " & Err.Description
Resume Affiche_barre_outils_End
Resume

End Sub

-Au niveau de l'impression , comment faire pour que l'echelle soit respectée et que l'impression ne prenne pas 2 pags en largeur?

>Sheets(MaFeuille).Zoom = False
>Sheets(MaFeuille).FitToPagesWide = 1
>Sheets(MaFeuille).FitToPagesTall = False

-Comment marche le pastespecial ? J'aurais besoin de coller juste les valeurs , sans les formules . Quels sont les parametres a utiliser ?

>Va dans l'aide de Excel, c'est la fonction pasteSpecial.

-Enfin , dans une fonction du menu (print_click()) ,
J'ouvre un form qui demande les feuilles a imprimer puis apres la Common dialog Box d'impression . Comment fair e pour que cette derniere ne s'affiche qu'une fois le form d'avant fermé ?

>Là, je vois pas trop ton problème. Tu peux donner un exemple, ou un bout de ton code ?

Sur ce ,
Merci .

Zoz ,
French AmigaZone www.multimania.com/lazoz

>De rien :)
Pour info, pour les newbies en VBA, il existe dans Word et Excel une barre d'outils VB (Affichage/Barres d'outils/Visual Basic). Grâce à elle, vous pouvez retrouver la majeure partie des commandes VBA. Il vous suffit de cliquer sur le bouton d'enregistrement, de choisir un nom pour la macro, puis de faire la manip' que vous voulez automatiser (ici par ex, pour forcer l'impression sur une page en largeur, il faut faire Fichier/Mise en page, cocher la case qui force l'échelle, et fermer la boîte de dialogue). Puis vous appuyez sur le bouton stop, et vous cliquez sur le bouton qui permet d'accéder au code. Et voilou =D

@peluche
DA
0
Rejoignez-nous