IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ VBA

FAQ VBAConsultez toutes les FAQ

Nombre d'auteurs : 10, nombre de questions : 133, dernière mise à jour : 15 juin 2021 

 
OuvrirSommaireExcelApplicationDivers

Cela dépend de ce que l'on veut obtenir. Pour démarrer la correction sur une feuille par exemple il suffit de faire :

 
Sélectionnez
Application.CheckSpelling CustomDictionary:="PERSO.DIC", IgnoreUppercase:=False, AlwaysSuggest:=True

Ceci a pour effet d'ouvrir la fenêtre du correcteur. Il est possible de contrôler un seul mot, avec une réponse booléenne.

 
Sélectionnez
Private Function MotExiste(ByVal strMot As String) As Boolean
    MotExiste = Application.CheckSpelling(strMot, "PERSO.DIC", False)
End Function
Créé le 28 janvier 2004  par bidou

Oui. Il faut faire

 
Sélectionnez
Application.ReferenceStyle = xlR1C1

ou xlA1 dans l'autre sens. Néanmoins, il vaut mieux l'éviter en cours d'exécution. Généralement, Excel convertit correctement ses références. Cependant certains codes attendent un type de référence homogène entre le code et la fonction appelée.

Créé le 28 janvier 2004  par bidou

Elle renvoie la collection des fonctions intégrées d'Excel. Ceci est très pratique dans de nombreux cas. Par exemple, dans Excel 97, la fonction VBA Replace n'existe pas. Mais Excel fournit sa fonction de feuille SUBSTITUTE qui est équivalente. On peut l'utiliser par le biais de WorksheetFunction.

 
Sélectionnez
Dim MaChaine As String
    
MaChaine = "où est l'apostrophe"
MaChaine = Application.WorksheetFunction.Substitute(MaChaine, "'", "''")
Créé le 28 janvier 2004  par bidou

C'est un appel implicite à la méthode Evaluate. Il s'agit en fait d'un interpréteur (le même que celui qui interprète les formules Excel). On peut faire des utilisations très complexes de cette méthode. Par exemple

 
Sélectionnez
MaValeur = Application.Evaluate("LOG(A1*3+2)")

Cela peut s'écrire aussi

 
Sélectionnez
MaValeur = [LOG(A1*3+2)]

Notez qu'il n'y a pas de guillements lorsqu'on utilise la notation crochets. L'interprétation des plages, dans notre cas A1, demande que le système de référence soit homogène. Si ma feuille était en référence LC j'obtiendrais une incompatibilité de type.

Créé le 28 janvier 2004  par bidou

Principalement FindFile ouvre le fichier alors que GetOpenFilename renvoie le nom du fichier sélectionné. Cependant GetOpenFilename permet d'utiliser un filtrage ce que ne permet pas la méthode FindFile. Par exemple :

 
Sélectionnez
NomFichier = Application.GetOpenFilename("Classeurs Excel(*.xls),*.xls, Macros complémentaires (*.xla),*.xla")

Il y a une plus grande sécurité à utiliser la méthode GetOpenFilename.

Créé le 28 janvier 2004  par bidou

Il y a deux approches différentes dans ce concept. L'objet Application donne la possibilité de créer du code sur des méthodes OnAction. Par exemple

 
Sélectionnez
Application.OnKey "^{p}", "Gestion"

Déclenche la procédure Gestion sur l'appui des touches CTRL+P Il est aussi possible de faire de l'interruption d'événements sur l'objet Application, mais c'est un peu plus complexe. Dans un module objet (Feuille, classeur, classe), on déclare une variable pour l'application. Dès lors, il est possible de gérer les événements par l'intermédiaire de cette variable.

 
Sélectionnez
Dim WithEvents App As Application

Private Sub App_NewWorkbook(ByVal Wb As Excel.Workbook)

End Sub
Créé le 28 janvier 2004  par bidou

Il faut utiliser Run. Cette méthode permet aussi de passer des paramètres. Supposons que mon classeur "calcul.xls" contienne une fonction Log10 telle que :

 
Sélectionnez
Public Function Log10(ByVal X As Single) As Single
    Log10 = Log(X) / Log(10#)
End Function

Il est possible de l'utiliser depuis un autre classeur en faisant

 
Sélectionnez
Result = Application.Run("calcul.xls!Log10", 1.2)
Créé le 28 janvier 2004  par bidou

La routine ci-dessous te permettra de sauvegarder le graphe actif

 
Sélectionnez
Sub PrintChart()
Dim FName As String, NomGraphe As String

NomGraphe = Right(ActiveChart.Name, Len(ActiveChart.Name) - Len(ActiveSheet.Name) - 1)
With ActiveSheet.ChartObjects(NomGraphe).Chart
    FName = Application.GetSaveAsFilename("", "Fichier Gif (*.GIF),*.GIF,Fichier JPEG (*.JPG),*.JPG,Tous fichiers (*.*),*.*")
    .Export Filename:=FName, FilterName:=TypeImg, Interactive:=True
End With
End Sub
Créé le 6 février 2004  par DarkVader

Dans le répertoire d'installation d'Excel, (généralement C:\Programm Files\Microsoft 0ffice\Officexx\1036 pour une version Office en français), le fichier VBALIST.XLS permet de trouver, entre autres, la traduction des fonctions de feuilles de calcul Excel.

Exemple : pour la fonction EQUIV => MATCH

Ces fonctions peuvent ensuite être utilsées dans le code VBA :

 
Sélectionnez
Sub FindFirst()
    myVar = Application.WorksheetFunction _
        .Match(9, Worksheets(1).Range("A1:A10"), 0)
    MsgBox myVar
End Sub
Créé le 22 octobre 2006  par bbil

Lien : A quoi sert la propriété WorksheetFunction ?
Lien : Pourquoi autant de propriétés "Formula" différentes ?

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.