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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243
|
Dans la zone General-Declarations d'un module, créez une variable publique:
Public MonWd ' Pour Word
Public MonXl 'Pour Excel
'Déclaration des Variables
Dim MonXl
'Ceci initialise la variable et charge Excel en arrière plan
Set MonXl = New Excel.Application
ou Set MonXl = CreateObject("Excel.Application") ' Pour Excel
ou Set MonWd = CreateObject("Word.Application") ' Pour Word
'Rend Excel visible, ce n'est pas indispensable, mais plus spectaculaire...
MonXl.Visible = True
'Ouverture d'un Classeur Existant
MonXl.Workbooks.Open FileName:="C:\Documents and Settings\Administrateur\Mes documents\Classeur1.xls"
'sélection d'une feuille du classeur en cours
MonXl.Sheets("E.MAIL DIRECTION").Select
MonXl.Sheets(1).Select 'selectionne la premiere feuille du classeur
'Ajoute un nouveau classeur
MonXl.Workbooks.Add
'ajoute une feuille à la fin du classeur
Dim newSheet
Dim nbfeuille
nbfeuille = MonXl.Worksheets.Count
Set newSheet = MonXl.Sheets.Add(after:=MonXl.Worksheets(nbfeuille), Type:=xlWorksheet)
'renvoi le nom de la premiere feuille du classeur ou attribu un nom à une feuille
NomFeuille= MonXl.Sheets(1).Name
MonXl.Sheets(1).Name = "Feuille Ajoutée"
'renseigne la valeur d'une cellule
MonXl.Range("A1").Value = "XY"
'teste la valeur d'une cellule
If MonXl.Range("A3").Value <> "" Then
'sélection d'une colonne entière et supprime le contenu des cellules
MonXl.Columns("F:F").Select
MonXl.Selection.ClearContents
MonXl.Selection.Clear
'Assure la sélection des trois cellules
MonXl.Range("A1:A3").Select
'assure la selection d'un bloc de lignes et colonne de la feuille Sheet1
MonXl.Worksheets("Sheet1").Range("A1:C10").selected
'effectuer un copier-coller d'une colonne à l'autre
MonXl.Columns("F:F").Select
MonXl.Selection.Copy
MonXl.Columns("G:G").Select
MonXl.ActiveSheet.Paste
'modifie la hauteur de la ligne n°1
MonXl.Rows("1:1").RowHeight = 39
'active un classeur (lorsque plusieurs sont chargés)
MonXl.Windows("E MAIL POINT AU 23 MARS 2002 PAR DISTRICT.xls").Activate
' sauvegarde le classeur en cours
MonXl.ActiveWorkbook.Save
'sauvegarde le classeur en cours sous un autre nom
MonXl.ActiveWorkbook.SaveAs Filename:="E:\Mes documents\DOC EXCEL\E MAIL POINT AU 23 MARS 2002 PAR DISTRICT2.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
'ferme le classeur en cours
MonXl.ActiveWindow.Close
'se positionner sur la premiere feuille
MonXl.ActiveWindow.ScrollWorkbookTabs Position:=xlFirst ou bien MonXl.Worksheets(1).Activate
' Fixe la largeur de la colonne selectionnée
MonXl.Selection.ColumnWidth = 26
' Fixe la largeur d'une colonne
MonXl.Columns("F:F").ColumnWidth = 40.14
'Selectionne une ligne complete,active une cellule de la ligne et revoi le nombre de lignes sélectionnées
MonXl.Rows("13:13").Select
Monxl.Range("B13").Activate
NbLignes=MonXl.rows.Count
NbLignes=Monxl.Columns.Count
'selectionne une colonne puis active le fitre automatique et applique un filtre
MonXl.Columns("F:F").Select
Monxl.Selection.AutoFilter
'doit contenir dir dans le texte
Monxl.Selection.AutoFilter Field:=1, Criteria1:= "=*dir*", Operator:=xlAnd
'doit contenir magasin ou se terminer par dir
MonXl.Selection.AutoFilter Field:=1, Criteria1:="=*magasin*", Operator:=xlOr,Criteria2:="=*dir"
'Ne doit pas commencer par B et ne doit pas finir par X
MonXl.Selection.AutoFilter Field:=6, Criteria1:="<>b*", Operator:=xlAnd, Criteria2:="<>*x"
'supprime une ligne
MonXl.Worksheets("Sheet1").Rows(3).Delete
MonXl.Range("G:G").Count 'affiche 65536 (nb maxi de lignes)
MonXl.Range("G:G").Item(1) 'affiche le texte contenu dans la cellule
MonXl.Range("G:G").Item(1).Value 'Equivalent à la ligne précédente
MonXl.Range("G:G").Item(1).Address(ReferenceStyle:=xlR1C1) 'affiche les coordonnées de la cellule $G$1255
MonXl.Range("G:G").Item(1).Address(ReferenceStyle:=xlA1) 'affiche les coordonnées de la cellule R1C7
MonXl.Range("G:G").Item(1).Address(RowAbsolute:=False, ColumnAbsolute:=False) ' affiche les coordonnées de la cellule sans les $ : G1244
MonXl.Range("G:G").Item(1).Address(external:=True) 'affiche le nom du classeur la feuille en cours et les coordonnées de la cellule en cours
'affiche la feuille dans sa taille maxi et positionne le curseur sur l'angle sup gauche
MonXl.ActiveWindow.WindowState = xlMaximized
MonXl.ActiveWindow.ScrollRow = 1
MonXl.ActiveWindow.ScrollColumn = 1
'Modifie la taille et la position de la fenêtre Windows Excel
Application.Left = 75.25
Application.Top = 1
Application.Width = 649.5
Application.Height = 474
'Cet exemple montre comment supprimer des lignes dans la zone en cours de la feuille de calcul 1 où la valeur de la cellule 1 de la ligne est la même que celle de la cellule 1 de la ligne précédente.
dim rw
For Each rw In MonXl.Worksheets(1).Cells(1, 1).CurrentRegion.Rows
this = rw.Cells(1, 1).Value
If this = last Then rw.Delete
last = this
Next
'Cet exemple montre comment faire défiler la fenêtre du classeur jusqu'à ce que la sélection 'apparaisse dans le coin supérieur gauche de la fenêtre.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ActiveWindow
.ScrollRow = Target.Row
.ScrollColumn = Target.Column
End With
End Sub
Cet exemple montre comment attribuer la valeur « 3.14159 » à la cellule A1 de la feuille « Sheet1 ».
Worksheets("Sheet1").Range("A1").Value = 3.14159
Cet exemple montre comment créer une formule dans la cellule A1 de la feuille « Sheet1 ».
Worksheets("Sheet1").Range("A1").Formula = "=10*RAND()"
Cet exemple montre comment exécuter une boucle sur les cellules A1:D10 de la feuille « Sheet1 ». Si une des cellules a une valeur inférieure à 0,001, le code remplace cette valeur par 0 (zéro).
For Each c in Worksheets("Sheet1").Range("A1:D10")
If c.Value < .001 Then
c.Value = 0
End If
Next c
Cet exemple montre comment exécuter une boucle sur la plage appelée « TestRange » et comment afficher le nombre de cellules vides de la plage.
numBlanks = 0
For Each c In Range("TestRange")
If c.Value = "" Then
numBlanks = numBlanks + 1
End If
Next c
MsgBox "There are " & numBlanks & " empty cells in this range"
Cet exemple montre comment affecter le style italique à la police des cellules A1:C5 de la feuille « Sheet1 ». L'exemple utilise la Syntaxe 2 de la propriété Range.
Worksheets("Sheet1").Range(Cells(1, 1), Cells(5, 3)).Font.Italic = True
Sub OuvreExcel()
'Déclaration des Variables
Dim MonXl
'Initialise la variable et charge Excel en arrière plan
Set MonXl = New Excel.Application
'Rend Excel visible, ce n'est pas indispensable, mais plus spectaculaire...
MonXl.Visible = True
'Definition du répertoire Courant
ChDir "E:\Mes documents\DOC EXCEL" 'Change des répertoire Actif
'Ouvre un Fichier Excel
MonXl.Workbooks.Open Filename:= _
"E:\Mes documents\DOC EXCEL\E MAIL POINT AU 23 MARS 2002 PAR DISTRICT.xls"
'Selectionne La feuille Nommée TOUS
MonXl.Sheets("TOUS").Select
'Copie la feuille en cours Nommée TOUS et en cré une autre au début du classeur
MonXl.Sheets("TOUS").Copy Before:=Sheets(1)
'Selectionne un Bloc de Cellules
MonXl.Range("A4:F1223").Select
'Copie la Sélection en cours
MonXl.Selection.Copy
'Ajoute une feuille au classeur
MonXl.Sheets.Add
'Colle la sélection sur la feuille active en cours
MonXl.ActiveSheet.Paste
' renvoi le nom de la feuille active
NomFeuille = MonXl.ActiveSheet.Name
'Annule le mode Couper ou Copier et supprime la marque de sélection.
Application.CutCopyMode = False
'sélection du filtre automatique
MonXl.Selection.AutoFilter
'renvoi le nombre de lignes ou le nombre de colonnes dans la selection
NbLignes = MonXl.Selection.Rows.Count
NbLignes = MonXl.Selection.Columns.Count
'ferme le classeur en cours
MonXl.ActiveWindow.Close
'quitte Excel
MonXl.Quit
End Sub
Private Sub Command1_Click()
Dim MonXl
Dim retour
Dim MsgOulk
Dim myitem
Dim myrecipient
Dim destadresse
Dim message
'retour = Shell("C:\Program Files\Outlook Express\msimn.exe /mailurl:mailto:dtmdp@wanadoo.fr?subject=mon sujet&Body=" & Text1.Text, vbHide)
Set MsgOulk = CreateObject("Outlook.Application")
Set message = MsgOulk.CreateItem(olMailItem)
message.Recipients.Add ("FR1226")
message.AddressList.AddressEntries(1).Address = ""
Debug.Print message.Recipients(1)
Debug.Print message.Recipients(1).AddressEntry.Address
message.Name = "dtmdp"
message.Subject = "toto"
message.Send
Set MonXl = New Excel.Application 'Ceci initialise la variable et charge Excel en arrière plan
MonXl.Visible = True 'Rend Excel visible, ce n'est pas indispensable, mais plus spectaculaire...
'Ouverture d'un Classeur Existant
MonXl.Workbooks.Open FileName:="C:\Documents and Settings\Administrateur\Mes documents\Classeur1.xls"
MonXl.Workbooks.Add 'Ajoute un nouveau classeur
MonXl.Range("A1").Value = "XY" 'Envoie le contenu des textboxes dans les cellules
MonXl.Range("A2").Value = "ZT"
MonXl.Range("A3").Value = "RT"
If MonXl.Range("A3").Value <> "" Then Beep
MonXl.Range("A1:A3").Select 'Assure la sélection des trois cellules
'MonXl.Charts.Add 'Ajoute un graphique au classeur courant en s'inpirant des données sélectionnées
'MonXl.ActiveChart.ChartType = XL3DPie 'Transforme le graphique en Secteur 3D
'MonXl.ActiveWorkbook.Close False 'Ferme le classeur sans enregistrer
'MonXl.Quit 'Quitte Excel
End Sub
'sélectionner l'ensemble des cellules de la feuille 1
Xl.Worksheets(1).Cells.Select
'fixer la police pour l'ensemble des cellules
Xl.Selection.Font.Name = "Arial"
Xl.Selection.Font.FontStyle = "Normal"
Xl.Selection.Font.Size = 9
'texte justifié à droite
Xl.Selection.HorizontalAlignment = xlLeft
'selectionne la colonne D (4eme)
Xl.Columns("D:D").select
'fixer la largeur de colonne
Xl.Columns("D:D").ColumnWidth = 8
'centrer le texte de la 4 eme colonne
Xl.Columns("D:D").HorizontalAlignment = xlCenter
'forcer le type de données (ici @ signifie texte)
Xl.Columns("D:D").NumberFormat = "@"
'ajoute un commentaire sur la cellule D1 (4eme colonne 1ere ligne)
Xl.Sheets(1).Range("D1").AddComment
'Indique si le commentaire reste affiché ou non
Xl.Sheets(1).Range("D1").Comment.Visible = False
'Texte du commentaire affecté à la cellule
Xl.Worksheets(1).Range("D1").Comment.Text Text:="Mon commentaire"
'positionner les volets
Xl.ActiveWindow.SplitRow = 0.733
Xl.ActiveWindow.SplitColumn = 1.94
'Figer les volets
Xl.ActiveWindow.FreezePanes = True
'mise en place du filtrage automatique
'Important, il ne faut pas que la fenêtre soit réduite sinon echec
Xl.Application.WindowState = xlNormal
Xl.Worksheets(1).Cells.Select
Xl.Selection.AutoFilter
' Tri des enregistrements
Xl.Worksheets(1).Cells.Select
Xl.Selection.Sort Key1:=Xl.Worksheets(1).Range("A1"), Order1:=xlAscending, Key2:=Xl.Worksheets(1).Range("D1") _
, Order2:=xlAscending, Key3:=Xl.Worksheets(1).Range("E1"), Order3:=xlAscending, _
Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
' Filtrage sur colonne 4 (recherche les cellules qui contiennent le mot "neuf"
Xl.Selection.AutoFilter Field:=4, Criteria1:="=*neuf*", Operator:=xlAnd
' Filtrage sur colonne 14 (recherche les cellules qui sont égales à "Stock"
Xl.Selection.AutoFilter Field:=14, Criteria1:="Stock"
' Filtrage sur colonne 15 (recherche les cellules dont la valeur est différentes de zéro)
Xl.Selection.AutoFilter Field:=15, Criteria1:="<>0" |
Partager