Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Word > Contribuez

Réponse
 
Outils de la discussion
Vieux 10/05/2008, 19h08   #1 (permalink)
Responsable Word
 
Avatar de Heureux-oli
 
Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 44
Messages: 10 080
Par défaut [VBA-Débutant]Créez une table de multiplication

Juste pour le plaisir.

Pour créer une table de multiplication, on va commencer par créer une table de 11 lignes et de 11 colonnes.

Code :
ActiveDocument.Tables.Add(Range:=Selection.Range, NumRows:=11, Numcolumns:=11)
Par facilité, nous allons utiliser un objet table et lui affecter notre table.

Code :
Dim oTbl As Table
 
Set oTbl = ActiveDocument.Tables.Add(Range:=Selection.Range, NumRows:=11, Numcolumns:=11)
 
Nous avons aussi besoin de deux entiers qui serviront à l'indexation des tables.

Code :
Dim iRow As Integer
Dim iCol As Integer
Nous allons utiliser deux boucles imbriquées pour adresser la table et calculer les multiplications.

Code :
For iRow = 1 To 10
    For iCol = 1 To 10
        oTbl.Cell(iRow + 1, iCol + 1).Range.Text = iRow * iCol
    Next iCol
Next iRow
Pour l'adressage des cellules, nous ajoutons 1 pour laisser la première ligne et la première colonne libre.

Pour remplir les en-tête des lignes et colonnes, nous allons utiliser deux boucles séparées.

Code :
iRow = iCol = 0
 
For iRow = 1 To 10
    oTbl.Columns(1).Cells(iRow + 1).Range.Text = iRow
Next iRow
 
For iCol = 1 To 10
    oTbl.Rows(1).Cells(iCol + 1).Range.Text = iCol
Next iCol
Comme iRow et iCol ont déjà été utilisé, il faut les remettre à 0

Le code complet :

Code :
Sub tableMultiplication()
Dim oTbl As Table
Dim iRow As Integer
Dim iCol As Integer
 
Set oTbl = ActiveDocument.Tables.Add(Range:=Selection.Range, NumRows:=11, Numcolumns:=11)
 
For iRow = 1 To 10
    For iCol = 1 To 10
        oTbl.Cell(iRow + 1, iCol + 1).Range.Text = iRow * iCol
        
    Next iCol
Next iRow
iRow = iCol = 0
 
For iRow = 1 To 10
    oTbl.Columns(1).Cells(iRow + 1).Range.Text = iRow
Next iRow
 
For iCol = 1 To 10
    oTbl.Rows(1).Cells(iCol + 1).Range.Text = iCol
Next iCol
 
 
Set oTbl = Nothing
 
 
End Sub
 
Essayez !
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Ne posez pas de question par MP, c'est inutile.
Les rubriques Office recrutent.
Ma page d'accueil
Consultez nos FAQ !! Word ; Access ; Outlook ; Excel ; PowerPoint ; SharePoint
Si vous pensez que certains sujets manquent dans la FAQ, aidez nous !
Des images
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Word > Contribuez

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 04h11.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter
Copyright 2000-2008 www.developpez.com - Legal informations