begin process at 2008 05 12 11:41:17
1 170 231 membres
133 nouveaux aujourd'hui
13 957 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

APPRENDRE A MANIPULER EXCEL


Information sur la source

Catégorie :VBA Classé sous : manipuler, piloter, excel Niveau : Débutant Date de création : 03/10/2001 Date de mise à jour : 18/10/2001 00:00:00 Vu / téléchargé: 61 974 / 2 866

Note :
8,31 / 10 - par 36 personnes
8,31 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (30)
Ajouter un commentaire et/ou une note

Description

Bon, c'est pas extraordinaire mais ça montre les commandes de bases pour manipuler Excel avec Vb.
On peut voir comment modifier quelques propriétés comme la police, la taille de la case, ...
C'est surtout fait pour les débutants.

Source

  • 'Déclaration
  • Public DocExcel as Object
  • 'on dit que l'objet est de type feuille excel et ouvre Excel
  • Set DocExcel = CreateObject("Excel.Application")
  • 'mettre à True pour l'afficher à l'écran , mettre à False pour pas qu'Excel reste invisible
  • If AfficherExcel = True Then
  • DocExcel.Visible = True
  • Else
  • DocExcel.Visible = False
  • End If
  • 'supprime l'affichage des messages d'erreurs ou de confirmation de suppression, ...
  • DocExcel.DisplayAlerts = False
  • 'ajoute un nouveau classeur
  • If NouveauFichier Then
  • DocExcel.Workbooks.Add
  • 'selectionne la feuille du classeur
  • DocExcel.Sheets("Feuil2").Select
  • 'on supprime cette feuille
  • DocExcel.ActiveWindow.SelectedSheets.Delete
  • 'on fait pareil avec la feuille 3
  • DocExcel.Sheets("Feuil3").Select
  • DocExcel.ActiveWindow.SelectedSheets.Delete
  • 'on selectionne la feuille 1 (la seule qui reste)
  • DocExcel.Sheets("Feuil1").Select
  • 'on change le nom de celle ci
  • DocExcel.Sheets("Feuil1").Name = "Mon Document Excel"
  • Else
  • 'on ouvre un fichier existant de nom NomFichier
  • DocExcel.Workbooks.Open FileName:=NomFichier, Editable:=True
  • End If
  • 'on change la largeur de la colonne
  • DocExcel.Columns("A:A").ColumnWidth = 20
  • 'on met selectionne la cellule A1
  • DocExcel.Range("A1").Select
  • test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE09, False, False, 0, False)
  • 'on met la date et l'heure
  • DocExcel.ActiveCell.FormulaR1C1 = "Fait le : " & Date & " à " & Time
  • 'du texte
  • DocExcel.Range("A2").Select
  • test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE11, False, False, 0, False)
  • DocExcel.ActiveCell.FormulaR1C1 = "Par un petit programme Vb"
  • 'une fusion de cellule
  • DocExcel.Range("A5:D5").Select
  • test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE14, False, False, 0, True)
  • DocExcel.ActiveCell.FormulaR1C1 = "Fusion des Cellules"
  • 'on change la police
  • DocExcel.Range("A6:G6").Select
  • test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE09, True, True, 4, True)
  • DocExcel.ActiveCell.FormulaR1C1 = "On change la police et on met en gras, en italic et on aligne à droite"
  • 'une opération
  • DocExcel.Range("B8").Select
  • test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE11, False, False, 0, False)
  • DocExcel.ActiveCell.FormulaR1C1 = 12
  • DocExcel.Range("B9").Select
  • test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE11, False, False, 0, False)
  • DocExcel.ActiveCell.FormulaR1C1 = 56
  • DocExcel.Range("A10").Select
  • test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE11, False, False, 0, False)
  • DocExcel.ActiveCell.FormulaR1C1 = "Somme ="
  • DocExcel.Range("B10").Select
  • test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE11, True, False, 0, False)
  • DocExcel.ActiveCell.FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)"
  • 'on sauvegarde la feuille sous le nom contenu dans NomFichier
  • DocExcel.ActiveWorkbook.SaveAs FileName:=NomFichier, _
  • FileFormat:=17, Password:="", WriteResPassword:="", _
  • ReadOnlyRecommended:=False, CreateBackup:=False
  • 'on quitte excel
  • DocExcel.Application.Quit
  • '' Maintenant, la fonction ParametreExcel
  • Public Function ParametreExcel(MyObject As Object, Police As String, TaillePolice As Integer, Gras As Boolean, Italique As Boolean, AlignementH As Integer, Fusion As Boolean) As Boolean
  • 'les différents paramètres des cellules, il n'y sont pas tous
  • With MyObject.Selection.Font
  • .Name = Police
  • .Size = TaillePolice
  • .Strikethrough = False
  • .subscript = False
  • .OutlineFont = False
  • .shadow = False
  • .colorIndex = xlAutomatic
  • .Italic = Italique
  • .Bold = Gras
  • End With
  • With MyObject.Selection
  • .WrapText = False
  • .Orientation = 0
  • .Addindent = False
  • .ShrinkToFit = False
  • .MergeCells = Fusion 'True = on fusionne les cellules
  • End With
  • If AlignementH <> 0 Then
  • With MyObject.Selection
  • .HorizontalAlignment = AlignementH
  • End With
  • End If
  • ParametreExcel = True
  • End Function
 'Déclaration
    Public DocExcel as Object    

    'on dit que l'objet est de type feuille excel et ouvre Excel
    Set DocExcel = CreateObject("Excel.Application")
    'mettre à True pour l'afficher à l'écran , mettre à False pour pas qu'Excel reste invisible
    If AfficherExcel = True Then
        DocExcel.Visible = True
    Else
        DocExcel.Visible = False
    End If
    
    'supprime l'affichage des messages d'erreurs ou de confirmation de suppression, ...
    DocExcel.DisplayAlerts = False
    
    'ajoute un nouveau classeur
    If NouveauFichier Then
        DocExcel.Workbooks.Add
        'selectionne la feuille du classeur
        DocExcel.Sheets("Feuil2").Select
        'on supprime cette feuille
        DocExcel.ActiveWindow.SelectedSheets.Delete
        'on fait pareil avec la feuille 3
        DocExcel.Sheets("Feuil3").Select
        DocExcel.ActiveWindow.SelectedSheets.Delete
        'on selectionne la feuille 1 (la seule qui reste)
        DocExcel.Sheets("Feuil1").Select
        'on change le nom de celle ci
        DocExcel.Sheets("Feuil1").Name = "Mon Document Excel"
    Else
        'on ouvre un fichier existant de nom NomFichier
        DocExcel.Workbooks.Open FileName:=NomFichier, Editable:=True
    End If
    
    
    'on change la largeur de la colonne
    DocExcel.Columns("A:A").ColumnWidth = 20
    
    
    'on met selectionne la cellule A1
    DocExcel.Range("A1").Select
    test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE09, False, False, 0, False)
    'on met la date et l'heure
    DocExcel.ActiveCell.FormulaR1C1 = "Fait le : " & Date & " à " & Time
    
    'du texte
    DocExcel.Range("A2").Select
    test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE11, False, False, 0, False)
    DocExcel.ActiveCell.FormulaR1C1 = "Par un petit programme Vb"
    
    
    'une fusion de cellule
    DocExcel.Range("A5:D5").Select
    test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE14, False, False, 0, True)
    DocExcel.ActiveCell.FormulaR1C1 = "Fusion des Cellules"
    
    
    'on change la police
    DocExcel.Range("A6:G6").Select
    test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE09, True, True, 4, True)
    DocExcel.ActiveCell.FormulaR1C1 = "On change la police et on met en gras, en italic et on aligne à droite"
    
'une opération
    DocExcel.Range("B8").Select
    test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE11, False, False, 0, False)
    DocExcel.ActiveCell.FormulaR1C1 = 12
    DocExcel.Range("B9").Select
    test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE11, False, False, 0, False)
    DocExcel.ActiveCell.FormulaR1C1 = 56
    DocExcel.Range("A10").Select
    test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE11, False, False, 0, False)
    DocExcel.ActiveCell.FormulaR1C1 = "Somme ="
    DocExcel.Range("B10").Select
    test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE11, True, False, 0, False)
    DocExcel.ActiveCell.FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)"
    
    'on sauvegarde la feuille sous le nom contenu dans NomFichier
    DocExcel.ActiveWorkbook.SaveAs FileName:=NomFichier, _
        FileFormat:=17, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    
  
    'on quitte excel
    DocExcel.Application.Quit


'' Maintenant, la fonction ParametreExcel
Public Function ParametreExcel(MyObject As Object, Police As String, TaillePolice As Integer, Gras As Boolean, Italique As Boolean, AlignementH As Integer, Fusion As Boolean) As Boolean
        'les différents paramètres des cellules, il n'y sont pas tous
        With MyObject.Selection.Font
            .Name = Police
            .Size = TaillePolice
            .Strikethrough = False
            .subscript = False
            .OutlineFont = False
            .shadow = False
            .colorIndex = xlAutomatic
            .Italic = Italique
            .Bold = Gras
        End With
        With MyObject.Selection
            .WrapText = False
            .Orientation = 0
            .Addindent = False
            .ShrinkToFit = False
            .MergeCells = Fusion  'True = on fusionne les cellules
        End With
        
        If AlignementH <> 0 Then
            With MyObject.Selection
                .HorizontalAlignment = AlignementH
            End With
        End If
        
        ParametreExcel = True
End Function  

Conclusion

D'abord, cliquer sur Creer le fichier , puis quand on clique sur Ouvrir fichier existant, ça va modifier le premier fichier (la date et l'heure).
Si on appuie sur Ouvrir Excel, Excel apparait et on voit le texte que se met en place tout seul.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de Zackarry le 24/01/2002 14:20:39

    tout ca pour cette daub !!! arf !!

  • signaler à un administrateur
    Commentaire de gevaen le 20/02/2002 10:39:02

    Au moins ça fonctionne. Pas mal.

  • signaler à un administrateur
    Commentaire de GarnetDiAlexandros le 12/11/2002 16:03:35

    C très bien, très compréhensible et complet
    10/10

  • signaler à un administrateur
    Commentaire de jupiter le 24/12/2002 09:01:13

    Dans quelle doc peut on trouver ces parametrages ? je n'ai pas trouvé avec MSDN

  • signaler à un administrateur
    Commentaire de laurent207 le 20/02/2003 16:35:12

    oui ça serai sympa denous dire où trouver la doc car mmoi non pls je n'ai pas trouvé avec MSDN

  • signaler à un administrateur
    Commentaire de stupideGandalf le 28/05/2003 14:02:19

    J'ai une ptite question, comment faire pour garder ta syntaxe et ouvrir une feuille de données qui comportera les enregitrements d'une requête??

  • signaler à un administrateur
    Commentaire de Pandeo le 17/06/2003 19:22:12

    Bien que le code est trèb bien documenté, ca revient à partir l'enregistreuse et à regarder le code qui se fait... et le docExcel peut être oublié; ca allège le code

  • signaler à un administrateur
    Commentaire de Aleria le 12/07/2003 09:14:14

    C'est bien ! mais il y a des commandes un peu superflues pour moi (quel est l'interet de mettre du texte en gras dans Excel via Vb ? par exemple) sinon ce programme tutorial est très bien,très complet !

  • signaler à un administrateur
    Commentaire de Pandeo le 15/07/2003 19:59:13

    Quand tu créées des rapports à partir de VB, ca peut être intéressant de mettre de la couleur, des tailles de caractères différentes, une polices différentes, et même de mettre en gras. Ca dépend de ce que tu fais avec.

  • signaler à un administrateur
    Commentaire de testondd le 25/07/2003 11:26:52

    il est tres bien ce document car c'est une bonne base pour commencer

    Au moins ca va me servir

  • signaler à un administrateur
    Commentaire de daetips le 03/09/2003 21:22:30

    super

  • signaler à un administrateur
    Commentaire de huuuuu21 le 06/11/2003 10:03:01

    Moi j'ai un problème, j'ai fais un prog qui ressemble à ça, avec un createobject et tous ça, mais lorsque je fais docmachin.application.quit excel se ferme, mais quand je fait Ctrl Alt Suppr, et je regarde les processus qui sont en cours, excel est encore en marche.

        En fait excel n'est pas visible, car il a quitté, mais il est encore en arrière plan.

        Excel se ferme en fait lorsque je quitte le programme, ce n'est pas génant sous Xp, mais le programme que j'ai réalisé, j'en ai besoin sous win98, et malheureusement ça plante à la fermeture d'excel.

    avez vous une solution please ????

    huuu


  • signaler à un administrateur
    Commentaire de feihung le 26/03/2004 11:12:12

    Génial ton initiative de poster cette source, merci!
    Mais pour rejoindre aléria ce qui aurait été super aussi, c'est la manipulation des donées via des listbox vb ou autres du fichier excel.
    Encore merci tu me sors d'une belle *£$%§ !!

  • signaler à un administrateur
    Commentaire de Mick14 le 09/04/2004 18:29:46

    Pas mal...sauf que t'aurais pu aller un peu plus loin quand même!

  • signaler à un administrateur
    Commentaire de josepatlopezval le 17/05/2004 17:25:10

    Bien, je salurais ton initiative, de deposer une petite documentation qui m'a été fort utile pour ma production en entreprise et de ce pas je fournis un petit code, qui de par un recordset et une requette SQL revoie le resultat de la requette dans un fichier xls ( je n'ai pas mis la declar du recordset lol ) :

    '' A la base je faisait un petit generateur de requette sql vers
    '' mais ma cible a changer

    searchRS.RecordSource = "select " + campo$ + " from " +from$ + " Where " + Where$ + orden$
    searchRS.Refresh


    '' Vers excel
    '''''''' Contenu de la requete vers excel (Merci)
    Dim xlApp
    Dim xlBook
    Dim xlSheet
    Dim col, row As Integer
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Add
    Set xlSheet = xlBook.Worksheets(1)

    xlApp.Visible = True
    row = 1
    ''searchRS.Recordset.RecordCount ''Numero de ligne
    col = 1
    '' Checkcampos$ ''numero de colonne
    Me.Show

    searchRS.Recordset.MoveFirst
    ''''''''''''''' ENTETE''''''''''''''''''''
        While col &lt;= Checkcampos$
            xlApp.Worksheets(1).Cells(row, col).Value = searchRS.Recordset.Fields(col - 1).Name
            xlApp.Worksheets(1).Cells(row, col).ColumnWidth = "30"
            col = col + 1
        Wend

    '''''''''''''''  Corps ''''''''''''''''''''''
    While searchRS.Recordset.EOF = False
         row = row + 1

        While col &lt;= Checkcampos$
            xlApp.Worksheets(1).Cells(row, col).Value = searchRS.Recordset.Fields(col - 1)
            xlApp.Worksheets(1).Cells(row, col).ColumnWidth = "30"
            col = col + 1
        Wend
        col = 1
        searchRS.Recordset.MoveNext
      
    Wend
    rs$ = MsgBox("Procedure Termine", vbInformation)
    xlApp.Visible = True


    End If

  • signaler à un administrateur
    Commentaire de josepatlopezval le 17/05/2004 17:25:19

    Bien, je salurais ton initiative, de deposer une petite documentation qui m'a été fort utile pour ma production en entreprise et de ce pas je fournis un petit code, qui de par un recordset et une requette SQL revoie le resultat de la requette dans un fichier xls ( je n'ai pas mis la declar du recordset lol ) :

    '' A la base je faisait un petit generateur de requette sql vers
    '' mais ma cible a changer

    searchRS.RecordSource = "select " + campo$ + " from " +from$ + " Where " + Where$ + orden$
    searchRS.Refresh


    '' Vers excel
    '''''''' Contenu de la requete vers excel (Merci)
    Dim xlApp
    Dim xlBook
    Dim xlSheet
    Dim col, row As Integer
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Add
    Set xlSheet = xlBook.Worksheets(1)

    xlApp.Visible = True
    row = 1
    ''searchRS.Recordset.RecordCount ''Numero de ligne
    col = 1
    '' Checkcampos$ ''numero de colonne
    Me.Show

    searchRS.Recordset.MoveFirst
    ''''''''''''''' ENTETE''''''''''''''''''''
        While col &lt;= Checkcampos$
            xlApp.Worksheets(1).Cells(row, col).Value = searchRS.Recordset.Fields(col - 1).Name
            xlApp.Worksheets(1).Cells(row, col).ColumnWidth = "30"
            col = col + 1
        Wend

    '''''''''''''''  Corps ''''''''''''''''''''''
    While searchRS.Recordset.EOF = False
         row = row + 1

        While col &lt;= Checkcampos$
            xlApp.Worksheets(1).Cells(row, col).Value = searchRS.Recordset.Fields(col - 1)
            xlApp.Worksheets(1).Cells(row, col).ColumnWidth = "30"
            col = col + 1
        Wend
        col = 1
        searchRS.Recordset.MoveNext
      
    Wend
    rs$ = MsgBox("Procedure Termine", vbInformation)
    xlApp.Visible = True


    End If

  • signaler à un administrateur
    Commentaire de sailinna le 06/06/2004 21:20:03

    ce programme ne marche pas chez moi, est ce parce que j'ai vb6 ? par exemple les fonctions set et Excel.Application ne sont pas reconnues.

  • signaler à un administrateur
    Commentaire de nowsfr le 07/06/2004 20:18:49

    ok mé coment tu fé pour imprimé le classeurs ou ta feuille

  • signaler à un administrateur
    Commentaire de laurent207 le 08/06/2004 10:51:45

    pour connaître les syntaxes à utiliser,  faîte une macro sous excel, ce  qui vous donnera le code vba. Ensuite, sous vb (exe standard) copier le vba dans vb (n'oublier pas de rajouter la référence Microsoft Excel XXX Object Library et de créer un objet avec l'instruction set). Enfin, rajouter l'objet devant chaque ligne du code vba (enfin presque) et... La suite à vous de découvrir, mais une macro peut vous aider pour la syntaxe.

  • signaler à un administrateur
    Commentaire de biebiere le 10/06/2004 16:55:42

    salut j'ai le même probleme que huuuuu21. lorsque je lance excel et que je ferme la fenetre excel manuellement le processus "excel.exe" reste vivant. lorsque je ferme l'application par la methode "quit" même problème. j'ai vadrouillé un peu sur le net et pas mal de personnes l'ont rencontré. Avez vous une solution (parce que la je galère et c'est pour mon stage)?

  • signaler à un administrateur
    Commentaire de sailinna le 10/06/2004 22:26:39

    en fait c'est bon ca marche tres bien  j'avais fait une boulette ...merci quand meme nowsfr

  • signaler à un administrateur
    Commentaire de samurize le 09/03/2005 20:29:37

    Est-ce que quelqu'un pourrais m'aider pour changer les bordures des cellules.

    Ca fait déja un petit bout de temps que j'essaye, mais infructueusement.

    Merci d'avance.

    Sinon Bravo pour le code. Marche à merveille.

  • signaler à un administrateur
    Commentaire de loskiller62 le 13/04/2005 09:22:03

    T'as pas lu ce qu'a dit laurent 207? non ? Et bien tu devrais...

    "pour connaître les syntaxes à utiliser,  faîte une macro sous excel, ce  qui vous donnera le code vb à utiliser"

  • signaler à un administrateur
    Commentaire de samurize le 13/04/2005 23:38:06

    Merci j'ai lu, mais encore faut-il savoir les utiliser. De toute façon j'ai changer mon prog pour ne plus etre dépendant à Excel.

    Merci quand meme...

  • signaler à un administrateur
    Commentaire de enimien le 03/04/2006 15:29:23

    Zakarry, tes remarques ne  sont pas utiles, il faut bien débuter un jour, moi je trouve que tu sent du gland.

  • signaler à un administrateur
    Commentaire de pintodu28 le 21/04/2006 16:24:37

    Goog

  • signaler à un administrateur
    Commentaire de Cathbad le 20/07/2006 13:46:15

    Pour les personnes qui ont/avaient des problème avec le processus excel restant dans les processus en cours, il suffit de faire :

    Set Docexcel = nothing.

    ++

  • signaler à un administrateur
    Commentaire de UNi le 18/08/2006 10:19:24

    trés sympa comme source ...c'est une bonne base pour débuter avec excel et VB ;o)

  • signaler à un administrateur
    Commentaire de Atojul le 26/04/2007 09:37:41

    Bonjour
    Est-ce que quelqu'un saurait me dire comment aligner le texte de toutes mes cellules à droite ?
    merci d'avance pour votre aide

  • signaler à un administrateur
    Commentaire de 1gima1 le 24/06/2007 18:56:03

    Bonjour,
    je crois que c'est <bouton droit> et dans format  de la celluleet dans l'onglet alignement, on choisi ce que l'on désire comme alignement.
    bonne journée

Ajouter un commentaire

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS