Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > Contribuez
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/05/2008, 19h08   #1
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 362
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 362
Points : 29 283
Points : 29 283
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 :
1
2
3
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 :
1
2
Dim iRow As Integer
Dim iCol As Integer
Nous allons utiliser deux boucles imbriquées pour adresser la table et calculer les multiplications.

Code :
1
2
3
4
5
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 :
1
2
3
4
5
6
7
8
9
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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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 ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h16.


 
 
 
 
Partenaires

Hébergement Web