Outils logiciels pour les cours Paris II
Cours Paris II
Stages/ Thèses/ Séminaires |
Cours 8Objets A chaque application Office correspond une hiérarchie d'objets organisée selon une structure d'arbre. Pour chaque objet, il a des propriétés : ces propriétés sont des variables qui peuvent être des types de base (un classeur a un nom, variable de type String), des types Objets (un classeur dispose d'un objet VBProject) ou des collections de type objets (un classeur a un attribut Worksheets qui est une liste de feuilles). Les méthodes sont des comportements pour l'objet (save pour un classeur par exemple). Pour des raisons de compatibilité des versions successives, les modèles objets successifs ne présentent pas énormément de différences. Quelques exemples de syntaxe : Préliminaires: Outils->Références->Cliquez sur 4 Biliothèques dont Microsoft Word 12.0 Object Library Exemples :
Sub Lire() ' ' Macro2 Macro ' Macro enregistrée le 17/10/2007 par LRI ' Application.Workbooks.Add "C:\paris2\ac.xls" End Sub
Sub lireword() ' ' Macro pour lire le 1er mot du fichier aa.doc qui doit ETRE FERME', puis tous les mots. ' Macro enregistrée le 01/11/2006 par mdr '
Dim WdApp As Word.Application Set WdApp = New Word.Application With WdApp .Documents.Open Filename:="C:\paris2\aa.doc" With .Selection .EndKey Unit:=wdStory .TypeParagraph End With .ActiveDocument.Save .Visible = True Cells(1, 2) = .ActiveDocument.Words.First Cells(2, 2) = .ActiveDocument.Words.Last ' On trouve le nombre de mots NbreMots = .ActiveDocument.Words.Count ' On écrit les mots dans la colonne A For i = 1 To NbreMots Cells(i, 1) = .ActiveDocument.Words(i) Next i End With WdApp.Quit Set WdApp = Nothing End Sub
Trois boutons: OUI, NON, STOP Sub Main() Cells(1, 4) = 1 Cells(1, 3) = Cells(1, 1) UserForm1.Show End Sub Sub CommandButton1_Click() I1 = Cells(1, 4) Cells(I1, 1).Select With Selection.Interior .ColorIndex = 5 .Pattern = xlSolid End With I1 = I1 + 1 Cells(1, 4) = I1 Cells(1, 3) = Cells(I1, 1) End Sub Private Sub CommandButton2_Click() I1 = Cells(1, 4) Cells(I1, 1).Select With Selection.Interior .ColorIndex = 8 .Pattern = xlSolid End With I1 = I1 + 1 Cells(1, 4) = I1 Cells(1, 3) = Cells(I1, 1) End Sub Private Sub CommandButton3_Click() ' Bouton QUITTER ' Masquer Userform1 UserForm1.Hide ' Récupérer la memoire occupée par userform1 Unload UserForm1 End Sub
Rechercher sur une colonne une valeur: si elle n'est pas présente, l'insérer en maintenant la liste triée. 'insertion dans la colonne A de la feuille 2, de mots entrés à l'aide de InputBox ' tableau à partir de ligne 2, taille du tableau en B1 Public Sub insertion() Worksheets(2).Activate Dim premligne, derligne, lireligne As Double Dim valeurcherchee As String premligne = 2 derligne = Cells(1, 2) + 1 valeurcherchee = InputBox("valeur cherchée") While premligne <> derligne - 1 lireligne = Int((premligne + derligne) / 2) Range("A" & lireligne).Select If Selection = valeurcherchee Then MsgBox ("trouvee en " + CStr(lireligne)) Exit Sub Else If Selection > valeurcherchee Then derligne = lireligne Else premligne = lireligne End If End If Wend If Range("A" & premligne).Value = valeurcherchee Then MsgBox ("trouvé en " + premligne) Else If Range("A" & derligne).Value = valeurcherchee Then MsgBox ("trouvé en " + derligne) Else 'check < than first If Range("A2").Value > valeurcherchee Then premligne = 1 End If ' check > last If Range("A" & derligne).Value < valeurcherchee Then premligne = derligne End If 'general case :insertion just after premligne Cells(premligne + 1, 1).Select Selection.EntireRow.Insert Cells(premligne + 1, 1) = valeurcherchee Cells(1, 2) = Cells(1, 2) + 1 ' MsgBox ("Non trouvé") End If End If End Sub |