Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Questions les plus fréquentes (FAQ) et didacticiels > [REF] Wiki Page 4 de MichelXld
Vous inscrire
S'inscrire FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus


Réponse
 
LinkBack Outils de la discussion
Vieux 08/03/2008, 17h37   #1 (permalink)
MichelXld
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 622
Post [REF] Wiki Page 4 de MichelXld

Les sujets abordés dans cette page :
  • Les fonctions mathématiques et trigonométriques , Les impressions , Les temporisations , Les fonctions , Les evenements , Excel , Les cellules , Copier & Coller , Les dates et les calendriers , Les spécificités Macintosh , Générer des fichiers Flash , Open Office .
Lien vers la wiki page 1 :Les feuilles , Les graphiques , Les images , Les propriétés des classeurs , Les sauvegardes , Les formes automatiques , Aleatoire , Les barres d'outils et les barres de menus , Les boites de dialogues intégrées , Les classeurs .
Lien vers la wiki page 2 : Les userforms : Les Checkbox , Les Labels , Les combobox , Les Commandbutton , Les Listbox ,Les Multipages , Les Frames , Les Textbox , Les imagesList , Les Treeview , Les Listview , Les Images , Les Webbrowser , Les calendriers , Les progressbar , Les Spreadsheet , Les Chartspaces , Les commonDialog , Les MSFlexGrid.
Lien vers la wiki page 3 :Piloter d'autres applications depuis Excel , Piloter ( Word , Outlook , Power Point ) , Les fichiers texte
Lien vers la wiki page 4 : Les fonctions mathématiques et trigonométriques , Les impressions , Les temporisations , Les fonctions , Les evenements , Excel , Les cellules , Copier & Coller , Les dates et les calendriers , Les spécificités Macintosh, Générer des fichiers Flash , Open Office
Lien vers la wiki page 5 : Les formules Excel , Les audits de formules , Les répertoires et les fichiers .
Lien vers la wiki page 6 : Les doublons , Les tris et les filtres , Les variables , Piloter les fichiers fermés (Excel , Access ,les fichiers DBF) .
Lien vers la wiki page 7 : Les commentaires , La gestion des erreurs , L'aide en ligne Excel , Les recherches dans un classeur, Les tableaux , Les pages html et internet , Windows Media Player , Le PC et le systême d'exploitation ,Piloter Flash , les types de boucles.
Lien vers la wiki page 8 : Piloter MSN Messenger et Windows Messenger , Les objets dans le feuille , Les liens hypertextes , Les formats , Visual basic editor , Les chaines de caractères , Les modules de classe.
Lien vers la wiki page 9 : Les mises en forme conditionnelles , Les Tableaux et graphiques Croisés Dynamiques , Gérer les fichiers XML depuis Excel , Piloter Open Office depuis Excel.
Lien vers la wiki page 10 : Le Publipostage Word / Excel.
Lien vers la wiki page 11 : Utiliser la librairie Windows Image Acquisition Automation Library v2.0 depuis Excel.
Les fonctions mathématiques
  • Afficher la racine carré d'un nombre par la fonction Sqr
    Sub Test()
    Msgbox Sqr(9) ' 3
    Msgbox Sqr(50) ' 7,07106781186548
    Msgbox Sqr(0) ' 0
    End Sub
  • La fonction Sgn permet de déterminer le signe d'un nombre
    Les valeurs renvoyées :
    Si supérieur à zéro : 1
    Si égal à zéro : 0
    Si inférieur à zéro : -1
    Sub Test()
    Msgbox Sgn(20.4) ' 1
    Msgbox Sgn(-44) ' -1
    Msgbox Sgn(0) '0
    End Sub
  • Utiliser les fonctions des feuilles Excel par Vba
    Par exemple calculer la moyenne de la plage A1:A5
    Sub calculMoyenne()
    Msgbox Application.Worksheetfunction.Average(Range("A1:A5 "))
    End Sub
  • Calculer la somme de la plage A1:A5 par macro
    Sub calculSomme()
    Msgbox Application.Worksheetfunction.Sum(Range("A1:A5"))
    End Sub
  • Convertir des Fahrenheit en Celsius
    Sub conversion_Fahrenheit_Celsius()
    Dim Fahr As Variant
    Fahr = inputBox("Saisir la température en Fahrenheit :", _
    "Conversion Fahrenheit en Celsius", 0)
    If Fahr = "" Then Exit Sub
    msgBox Fahr & " Fahrenheit = " & Format((5 / 9) * (Fahr - 32), "0.000") & " Celsius ."
    End Sub
  • Calculer la surface d'un cercle
    Sub surfaceCercle()
    Dim Rayon As Variant
    Rayon = inputBox("Saisir le rayon :", "Calcul surface d'un cercle", 0)
    If Rayon = "" Then Exit Sub
    If Sgn(Rayon) > 0 Then msgBox "La surface est : " & _
    Format(Application.worksheetFunction.Pi * Rayon ^ 2, "0.0000"), , _
    "Surface cercle-Rayon=" & Rayon
    End Sub
  • Calculer le volume d'un cylindre droit
    Sub volumeCylindreDroit()
    Dim Rayon As Variant, Hauteur As Variant
    Rayon = inputBox("Saisir le rayon :", "Calcul volume d'un cylindre droit ", 0)
    If Rayon = "" Then Exit Sub
    Hauteur = inputBox("Saisir la hauteur :", "Calcul volume d'un cylindre droit ", 0)
    If Hauteur = "" Then Exit Sub
    If Sgn(Rayon) > 0 And Sgn(Hauteur) > 0 Then msgBox "Le volume est : " & _
    Format(Application.worksheetFunction.Pi * Rayon ^ 2 * Hauteur, "0.0000"), , _
    "volume cylindre droit-Rayon=" & Rayon & " Hauteur=" & Hauteur
    End Sub
  • Calculer le volume d'une sphère
    Sub volumeSphere()
    Dim Rayon As Variant
    Dim vS As Double
    Rayon = inputBox("Saisir le rayon :", "Calcul volume d'une sphère ", 1)
    If Rayon = "" Then Exit Sub
    vS = Application.worksheetFunction.Pi * (Rayon ^ 3) * 4 / 3
    msgBox "Le volume est : " & Vs
    End Sub
  • Vérifier si la valeur de la cellule A1 est un nombre premier
    Sub verificationNombrePremier()
    Dim Valeur As Long, Diviseur As Long
    Valeur = Range("A1")
    Diviseur = 1
    If Valeur > 1 Then
    Do
    Diviseur = Diviseur + 1
    Loop While Valeur Mod Diviseur <> 0
    End If
    If Diviseur =Valeur Then
    msgBox Valeur & " est un nombre premier", , "Resultat"
    Else
    msgBox Valeur & " n'est pas un nombre premier", , "Resultat"
    End If
    End Sub
  • Chercher les 3 plus grandes valeurs d'une plage
    Sub troisPlusgrandesValeurs()
    Dim Plage As Range
    Dim i As Byte
    'les valeurs à rechercher sont dans la colonne A
    Set Plage = Columns(1)
    For i = 1 To 3
    'resultat s'affiche dans la colonne B
    Cells(i, 2) = Application.worksheetFunction.Large(Plage, i)
    Next i
    End Sub
  • La difference entre la fonction Round et Application.worksheetFunction.Round
    Le lien sur le forum XLD
    Le lien sur Internet
  • Vérifier si un nombre est un multiple de 10
    Dim maVariable As Integer
    maVariable = 50
    If maVariable Mod 10 = 0 Then msgBox "est un multiple de 10"
  • Quelle valeur ajouter à un nombre pour obtenir un multiple de 10
    Dim maVariable As Integer
    maVariable = 32
    If maVariable Mod 10 <> 0 Then
    msgBox 10 - (maVariable Mod 10)
    Else
    msgBox 0
    End If

La Trigonométrie
  • Afficher le cosinus , le Sinus et la Tangente d'un angle
    L'argument x entre parentheses exprime la valeur d'un angle en radians
    Pour convertir des radians en degrés, multipliez-les par 180/pi
    Sub test()
    Dim x As Double
    'exemple pour un angle de 30 degrés
    'transformation en radians
    x = 30 * Application.Worksheetfunction.Pi / 180
    'résultats
    Msgbox Cos(x) 'cosinus
    Msgbox 1 / Cos(x) 'secante
    Msgbox Sin(x) 'sinus
    Msgbox 1 / Sin(x) 'cosecante
    Msgbox Tan(x) 'tangente
    Msgbox 1 / Tan(x) 'cotangente
    End Sub

Les impressions
  • Imprimer une feuille
    Sub imprimerUneFeuille()
    Sheets("feuil2").printOut
    End Sub
  • Imprimer toutes les feuilles du classeur
    Dim Ws As Worksheet
    For Each Ws In thisWorkbook.Worksheets
    Ws.printOut
    Next
  • Imprimer une plage de cellules
    Sub imprimerPlageCellules()
    Sheets("feuil1").Range("A110").printOut
    End Sub
  • Aperçu de la Feuille nommée "Feuil2" avant impression
    Sub previsualiserAvantPrint()
    Sheets("Feuil2").printPreview
    End Sub
  • Effectuer l'aperçu avant impression en utilisant les boites de dialogues intégrées d'Excel
    Application.Dialogs(xlDialogPrintPreview).Show
    Remarque :
    L'argument False permet de rendre inactifs les boutons "mise en page" et "Marges"
    Application.Dialogs(xlDialogPrintPreview).Show False
  • Imprimer la page active et les tous les classeurs liés
    Sub imprimerPageActiveEt_Liensclasseurs()
    Dim Lien As Hyperlink
    Dim I As Byte
    Application.screenUpdating = False
    Activesheet.printOut
    For Each Lien In activeSheet.Hyperlinks
    If Right(Range(Lien.Range.Address).Hyperlinks(1).Addr ess, 4) = ".xls" Then
    Range(Lien.Range.Address).Hyperlinks(1).Follow newWindow:=False
    For I = 1 To activeWorkbook.Sheets.Count
    activeWorkbook.Sheets(I).printOut
    Next I
    activeWorkbook.Close
    End If
    Next
    Application.screenUpdating = True
    End Sub
  • Imprimer une feuille sans couleur de fond
    Le lien sur le forum XLD
    Le fichier zippé
  • Choix par inputBox du nombre de copies à imprimer
    Sub imprimeClasseur()
    Dim X As Byte
    On Error goTo gestionErreur
    X = inputBox("Saisir le nombre de copies à effectuer . ", "Impression")
    activeWorkbook.printOut Copies:=X, Collate:=True
    Exit Sub
    gestionErreur:
    If Err = 13 Then msgBox "Saisie non valide ."
    End Sub
  • Imprimer une Feuille en noir et blanc
    Sub impressionNoirEtBlanc()
    With Worksheets("Feuil1")
    .pageSetup.blackAndWhite = True 'parametrage N&B
    .printOut 'imprimer
    .pageSetup.blackAndWhite = False'réinitialisation
    End With
    End Sub
  • Changer temporairement l'imprimante active
    Le lien sur le forum XLD
  • Afficher l'aperçu des sauts de page , de la feuille active
    Sub afficherSautsDePage()
    activeWindow.View = xlPageBreakPreview
    End Sub
  • Masquer l'aperçu des sauts de page , de la feuille active
    Sub masquerLesSautsDePage()
    activeWindow.View = xlNormalView
    End Sub
  • Afficher la boite de dialogue d'impression, en précisant le nombre de copies
    'Dans l'exemple le nombre de copies par défaut =3
    Sub boiteDialogueImpression()
    Application.Dialogs(xlDialogPrint).Show , , , 3
    End Sub
  • Afficher la boite de dialogue pour le choix de l'imprimante
    Sub boiteDialogueChoixImprimante()
    Application.Dialogs(Excel.xlBuiltInDialog.xlDialog PrinterSetup).Show
    End Sub
  • Sélectionner l'imprimante pour l'édition
    If Application.Dialogs(xlDialogPrinterSetup).Show = True Then Feuil1.printOut
  • Empècher l'impression
    Private Sub Workbook_beforePrint(Cancel As Boolean)
    Cancel = True
    End Sub
  • Signaler la fin d'impression par un msgBox
    Le lien sur le forum XLD
  • Suivre l'impression des documents
    La macro "Suivi_Impression_V02" permet d'afficher dans la barre de statut des informations sur le document en cours d'édition :
    le nombre de pages déja imprimées
    le nombre total de pages à imprimer
    le nom du document en cours d'impression
    La macro "Temporisation" permet de rafraichir régulierement les informations( toutes les 2 secondes dans l'exemple )
    La macro "Finir" termine la procedure lorsque la file d'attente d'impression est vide
    voir la procedure du : 23-11-04 00:46 dans le fil de discussion
    Le lien sur le forum XLD
    Un autre exemple :
    Le fichier zippé
  • Lister les imprimantes installées et préciser laquelle est active
    Sub listeImprimantes_et_Statut()
    'testé avec Excel2002 et WinXP
    Dim objWMIService As Object, colInstalledPrinters As Object, objPrinter As Object
    Dim nomPC As String, Resultat As String
    nomPC = "."
    Set objWMIService = getObject("winmgmts:" & _
    "{impersonationLevel=impersonate}!\\" & nomPC & "\root\cimv2")
    Set colInstalledPrinters = objWMIService.execQuery("Select * from Win32_Printer")
    For Each objPrinter In colInstalledPrinters
    Resultat = Resultat & objPrinter.Name & " imprimante active : " & objPrinter.Default & vbLf
    Next
    msgBox Resultat
    End Sub
  • Afficher les propriétés des imprimantes installées
    Sub proprietesImprimantes()
    Dim objWMIService As Object, colItems As Object
    Dim objItem As Object
    Dim strComputer As String
    Dim i As Byte
    On Error Resume Next
    strComputer = "."
    Set objWMIService = getObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.execQuery("Select * from Win32_printerConfiguration", , 48)
    For Each objItem In colItems
    i = i + 1
    Cells(1, i) = "bitsPerPel: " & objItem.bitsPerPel
    Cells(2, i) = "Caption: " & objItem.Caption
    Cells(3, i) = "Collate: " & objItem.Collate
    Cells(4, i) = "Color: " & objItem.Color
    Cells(5, i) = "Copies: " & objItem.Copies
    Cells(6, i) = "Description: " & objItem.Description
    Cells(7, i) = "deviceName: " & objItem.deviceName
    Cells(8, i) = "displayFlags: " & objItem.displayFlags
    Cells(9, i) = "displayFrequency: " & objItem.displayFrequency
    Cells(10, i) = "ditherType: " & objItem.ditherType
    Cells(11, i) = "driverVersion: " & objItem.driverVersion
    Cells(12, i) = "Duplex: " & objItem.Duplex
    Cells(13, i) = "formName: " & objItem.formName
    Cells(14, i) = "horizontalResolution: " & objItem.horizontalResolution
    Cells(15, i) = "ICMIntent: " & objItem.ICMIntent
    Cells(16, i) = "ICMMethod: " & objItem.ICMMethod
    Cells(17, i) = "logPixels: " & objItem.logPixels
    Cells(18, i) = "mediaType: " & objItem.mediaType
    Cells(19, i) = "Name: " & objItem.Name
    Cells(20, i) = "Orientation: " & objItem.Orientation
    Cells(21, i) = "paperLength: " & objItem.paperLength
    Cells(22, i) = "paperSize: " & objItem.paperSize
    Cells(23, i) = "paperWidth: " & objItem.paperWidth
    Cells(24, i) = "pelsHeight: " & objItem.pelsHeight
    Cells(25, i) = "pelsWidth: " & objItem.pelsWidth
    Cells(26, i) = "printQuality: " & objItem.printQuality
    Cells(27, i) = "Scale: " & objItem.Scale
    Cells(28, i) = "SettingID: " & objItem.SettingID
    Cells(29, i) = "specificationVersion: " & objItem.specificationVersion
    Cells(30, i) = "TTOption: " & objItem.TTOption
    Cells(31, i) = "verticalResolution: " & objItem.verticalResolution
    Cells(32, i) = "XResolution: " & objItem.Xresolution
    Cells(33, i) = "YResolution: " & objItem.Yresolution
    Columns(i).autoFit
    Next
    End Sub
Afficher les propriétés de la zone d'impression d'une imprimante (marges horizontales et verticales)
Le lien sur Internet
  • Modifier la mise en page avant impression
    Sub miseEnPageAvantImpression()
    With Feuil1.pageSetup
    .leftMargin = Application.inchesToPoints(0.5)
    .rightMargin = Application.inchesToPoints(0.75)
    .topMargin = Application.inchesToPoints(1.5)
    .bottomMargin = Application.inchesToPoints(1)
    .headerMargin = Application.inchesToPoints(0.5)
    .footerMargin = Application.inchesToPoints(0.5)
    End With
    Feuil1.printPreview
    End Sub
  • Arreter l'impression en cours et vider la file d'attente
    Le lien sur le forum XLD
  • Définir la zone d'impression sur une plage de cellules
    activeSheet.pageSetup.printArea = "$A$1:$E$10"
  • Adapter la zone d'impression à une seule feuille
    With Sheets(1).pageSetup
    .printArea = "A1:M100"
    .Zoom = False
    .fitToPagesWide = 1
    .fitToPagesTall = 1
    End With
  • Réinitialiser la zone d'impression à la feuille complete
    activeSheet.pageSetup.printArea = ""
    Une autre possibilité :
    activeSheet.pageSetup.printArea = False
  • Vérifier si l'imprimante est parametree pour imprimer en Noir et Blanc ou en couleur
    ( Voir le message du 18/08/2005 20:54 )
    Le lien sur le forum XLD
  • Répéter l'insertion des 4 premieres lignes dans toutes les pages imprimées
    menu Fichier
    Mise en page
    onglet "Feuille"
    dans le champ "Lignes à repeter en haut" , tu selectionnes les 4 lignes qui devront apparaître sur chaque page imprimée
    tu peux aussi saisir directement dans ce champ $1:$4
  • Centrer le contenu de la feuille lors de l'impression
    With Feuil1
    .pageSetup.centerHorizontally = True
    .pageSetup.centerVertically = True
    .printOut
    End With
  • Imprimer un fichier texte
    Shell "notepad.exe /P""C:\monRepertoire\leFichier.txt""", 1
  • Ouvrir le port d'impression pour éditer un texte
    Sub imprimerTexte()
    Open "LPT1:" For Output As #1
    Print #1, "test d'impression."
    Print #1, "test 2eme ligne."
    Close #1
    End Sub
  • Imprimer le 2eme graphique contenu dans le Feuil1
    Feuil1.chartObjects(2).Chart.printOut
  • Imprimer la Feuil1 d'un Addin (.xla)
    With Workbooks("test.xla")
    .isAddin = False
    .Worksheets("Feuil1").printOut Copies:=1, Collate:=True
    .isAddin = True
    End With
  • Imprimer la première page en mode Paysage et la deuxième page en mode Portrait
    With Feuil1
    .pageSetup.Orientation = xlLandscape
    .printOut From:=1, To:=1
    .pageSetup.Orientation = xlPortrait
    .printOut From:=2, To:=2
    End With

Les temporisations
  • Effectuer une pause dans la procédure
    Declare Sub Sleep Lib "kernel32" (byVal dwMilliseconds As Long)
    Sub macroAvecPause()
    'le debut de la macro
    Sleep 1000 'pause en millisecondes
    'la suite de la macro
    End Sub
  • Paramétrer la durée d'une action : 5 secondes dans cet exemple
    t = Timer + 5: Do Until Timer > t: doEvents: Loop
  • La méthode onTime permet d'éxécuter les procedures à un moment précis( exemples issus de l'aide Excel)
    Exécuter my_Procedure dans 15 secondes.
    Application.onTime Now + timeValue("00:00:15"), "my_Procedure"
    Exécuter my_Procedure à 17 heures.
    Application.onTime timeValue("17:00:00"), "my_Procedure"
    Annuler le paramétrage de onTime de l'exemple précédent.
    Application.onTime earliestTime:=timeValue("17:00:00"), Procedure:="my_Procedure", Schedule:=False
  • Relancer une macro de façon récursive toutes les 2 secondes , tant qu'une condition n'est pas remplie
    'la macro incrémente la cellule B1 d'une unité toutes les 2 secondes
    ' saisir la valeur 1 dans la cellule A1 pour terminer la procedure !!
    '***************************************
    Sub lancerLaProcedure()
    Temporisation
    End Sub
    '***************************************
    ''**************************************
    Sub Temporisation()
    'timer toutes les 2 secondes
    Application.onTime Now + timeValue("00:00:02"), "maMacro"
    End Sub
    Sub maMacro()
    Range("B1") = Range("B1") + 1 'incementation de la cellule B1
    If Range("A1") = 1 Then ' terminer la procedure si la cellule A1=1
    Finir
    Exit Sub
    End If
    Temporisation
    End Sub
    Sub Finir()
    On Error Resume Next
    Application.onTime Now + timeValue("00:00:01"), "maMacro", , Schedule:=False
    End Sub
    '*****************************************
  • Un compte à rebours pour fermer un Userform
    Le fichier zippé

Les fonctions
  • La fonction Val et les valeurs décimales :
    Pour extraire les données décimales avec la fonction Val , il faut remplacer la virgule par un point
  • Utiliser la fonction DROITEREG ( LINEST) par macro
    Dim y_connus(), x_connus()
    y_connus = Array(5, 2, 1)
    x_connus = Array(6, 3, 4)
    Range("A1") = worksheetFunction.linEst(y_connus, x_connus)
  • Lancer une procédure contenue dans une macro complémentaire .XLA
    Cet exemple lance une macro issue de l'utilitaire d'analyse - VBA (ATPVBAEN.XLA)
    msgBox Application.Run("ATPVBAEN.XLA!WORKDAY", 12/11/2005, 10, 5)
  • Utiliser une fonction matricielle SOMMEPROD par macro
    La macro correspond à cette formule:
    SOMMEPROD((E58:E183=H60)*(C58:C183=I60)*(B58:B183= J60)*(F58:F183))
    Les arguments H60, I60 et J60 seront maintenant des données saisie dans les Textbox d'un Userform
    msgBox Evaluate("=SUMPRODUCT((E58:E183 =""" & textBox1.Text & """) * " & _
    "(C58:C183 =""" & textBox2.Text & """) * (B58:B183 =""" & textBox3.Text & """) * (F58:F183))")
  • La fonction Switch: Renvoyer la donnée associée à un mot
    Sub Test()
    msgBox valeurEquivalente("Vert")
    End Sub
    Function valeurEquivalente(Couleur As String)
    valeurEquivalente = Switch(Couleur = "Bleu", 5, Couleur = "Vert", 4, Couleur = "Rouge", 3)
    End Function
  • La fonction IIf : Renvoyer l'un ou l'autre de deux arguments selon l'évaluation d'une expression.
    (informations issues de l'aide en ligne Excel)
    IIf(Expr, Truepart, Falsepart)
    Expr : Expression à évaluer.
    Truepart : Valeur ou expression renvoyée si la valeur de Expr est True.
    Falsepart : Valeur ou expression renvoyée si la valeur de Expr est False.
    Exemple : Attribuer une donnée à la cellule A1 en fonction du contenu de la variable Cible
    Dim Cible As String
    Cible = "Bleu"
    Range("A1") = IIf(Cible = "Vert", "x", "y")
    Remarque :L'argument Falsepart est évalué même si la valeur de Expr est Vraie .

Les evenements
  • Débuter : comment afficher un message à l'ouverture du classeur
    Le fichier zippé
  • Empecher l'affichage du menu contextuel lors du clic droit dans la feuille
    Private Sub Workbook_sheetBeforeRightClick(byVal Sh As Object, _
    byVal Target As Range,Cancel As Boolean)
    Cancel = True
    End Sub
  • Emettre un son lors du clic sur un lien hypertexte , à partir d'Excel2000
    Private Sub Workbook_sheetFollowHyperlink(byVal Sh As Object, byVal Target As Hyperlink)
    Beep
    End Sub
  • Utilisez la propriété enableEvents pour désactiver les procédures évenementielles et pour éviter certaines boucles infinies
    Private Sub Workbook_sheetChange(byVal Sh As Object, byVal Target As Excel.Range)
    Application.enableEvents = False
    ...ma macro…
    'TRES IMPORTANT : ne pas oublier de remettre la valeur True en fin de macro
    Application.enableEvents = True
    End Sub
  • Appeler l'evenement Click d'un commandButton ( placé dans une feuille ) depuis une autre macro
    Application.Run ("Feuil1.commandButton1_Click")
  • Afficher un message lors du clic sur la cellule E10
    Private Sub Worksheet_selectionChange(byVal Target As Range)
    If Not Application.Intersect(Target, Range("E10")) Is Nothing Then msgBox "bonjour"
    End Sub
    d'autres exemples très détaillés , par @+Thierry
    Le lien sur le forum XLD
    Déclencher une action si la Feuil1 est activée
    ( affichage d'un USF dans l'exemple)
    Private Sub Workbook_sheetActivate(byVal Sh As Object)
    If Sh.Name = "Feuil1" Then userForm1.Show
    End Sub
  • Réinitialiser le menu contextuel ( clic droit dans la feuille )
    Une démo de Didier myDearFriend
    La procédure permet de supprimer les menus personnalisés présents dans le menu contextuel
    Le lien sur le forum XLD
    Le fichier zippé
    Un autre exemple
    Sub reinitialiserMenuContextuelDisparu()
    Application.commandBars("cell").Reset
    End Sub
  • Intercepter l'evenement changement de la couleur du fond des cellules
    Option Explicit
    Dim x As Integer
    Dim Cell As String
    Private Sub Worksheet_selectionChange(byVal Target As Range)
    On Error Resume Next
    If Cell = "" Then
    x = Target.Interior.colorIndex
    Cell = Target.Address
    Exit Sub
    End If
    If Range(Cell).Interior.colorIndex <> x Then _
    msgBox "la couleur de la cellule " & Cell & " a changé"
    x = Target.Interior.colorIndex
    Cell = Target.Address
    End Sub
  • Déclencher une procédure evenementielle contenue dans un USF ,depuis une macro qui possede une variable
    le préfixe "Private" doit etre préalablement oté dans la macro de l'userForm
    Private Sub Worksheet_Change(byVal Target As Range)
    callByName userForm1, "commandButton" & Range("A1") & "_Click", vbMethod
    End Sub
  • Remplacer le menu contextuel ( clic droit de la souris ) par l'affichage de la palette de couleurs
    La cellule active est coloriee par la couleur sélectionnée
    Private Sub Worksheet_beforeRightClick(byVal Target As Range, Cancel As Boolean)
    Dim x As Long
    Cancel = True
    Application.Dialogs(xlDialogPatterns).Show
    x = activeCell.Interior.colorIndex
    If x = xlColorIndexAutomatic Then x = xlColorIndexNone
    activeCell.Interior.colorIndex = x
    End Sub
  • Remplacer le menu contextuel par un inputbox qui permet de choisir entre 3 couleurs, pour colorier la cellule active
    Private Sub Worksheet_beforeRightClick(byVal Target As Range, Cancel As Boolean)
    Dim Reponse As Variant
    Cancel = True
    Reponse = Application.inputBox("Saisissez une valeur entre 1 et 3" & vbLf & vbLf & _
    "1 = Rouge" & vbLf & "2 = Vert" & vbLf & "3 = Bleu", "Colorier la cellule active", 1)
    If Not isNumeric(Reponse) And Len(Reponse) <> 1 Then Exit Sub
    If Reponse > 0 And Reponse < 4 Then activeCell.Interior.colorIndex = Reponse + 2
    End Sub

Excel
  • Afficher la version d'excel
    Sub versionExcel()
    msgBox Application.Version
    End Sub
  • Fermer l'application Excel
    Sub Ferme()
    application.Quit
    End Sub
  • Liste des raccourcis clavier d'Excel
    Le lien sur le forum XLD
  • Modifier le nom de l'utilisateur Excel
    Menu Outils
    Options
    Onglet Général
    Nom d'utilisateur
  • Moifier le nom de l'utilisateur Excel par macro
    Application.userName = "Mon Nom"
  • Les spécifications et limites d'Excel (Excel2002)
    65536 lignes
    256 colonnes
    Nombre maximal de couleurs par classeur : 56
    4 000 styles de cellules
    1024 caractères dans une cellule
    32767 caractères dans la barre de formule
    7 niveaux de fonctions imbriquées
    2048 plages sélectionnées
    1024 caractères pour la longueur du contenu des formules
    Précision numérique : 15 chiffres
    Plus grand chiffre autorisé à taper dans une cellule : 9,99999999999999E+307
    Plus grand chiffre positif autorisé : 1,79769313486231E+308
    Plus petit chiffre négatif autorisé : -2,2251E-308
    Plus petit chiffre positif autorisé : 2,229E-308
    Plus grand chiffre négatif autorisé : -1E-307
    Longueur du contenu des formules : 1 024 caractères
    Itérations : 32 767
    Arguments dans une fonction : 30
    Date la plus ancienne autorisée pour les calculs : 1er janvier 1900 (1er janvier 1904 en cas d'utilisation du système de date basé sur 1904)
    Date la plus récente autorisée pour les calculs : 31 décembre 9999
    Durée maximale pouvant être entrée = 9999:59:59
    Ouverture des classeurs Limité par la quantité de mémoire disponible
    Largeur des colonnes : 255 caractères
    Hauteur des lignes : 409 points
    Sauts de page : 1 000 horizontaux et verticaux
    Longueur du contenu des cellules (texte) : 32 767 caractères. Affichage de 1 024 uniquement dans une cellule et 32 767 dans la barre de formule.
    Nombre maximal de feuilles par classeur Limité par la quantité de mémoire disponible
    Nombre maximal de couleurs par classeur : 56
    Formats de nombre personnalisés Entre 200 et 250, selon la version linguistique d'Excel que vous avez installée.
    Noms dans un classeur Limité par la quantité de mémoire disponible
    Volets dans une fenêtre : 4
    Feuilles liées Limité par la quantité de mémoire disponible
    Scénarios Limité par la quantité de mémoire disponible .251 scénarios seulement sont affichés dans un rapport de synthèse
    Changement de cellules dans un scénario : 32
    Cellules variables dans le Solveur : 200
    Fonctions personnalisées Limité par la quantité de mémoire disponible
    Plage de zoom De 10 pour cent à 400 pour cent
    Références de tri 3 pour un tri simple, illimité lors de l'utilisation de tris séquentiels
    Niveaux d'annulation 16
    Barres d'outils personnalisées dans un classeur Limité par la quantité de mémoire disponible
    Boutons de barres d'outils personnalisées Limité par la quantité de mémoire disponible
    D'autres informations completes sur les spécifications et limites d'Excel
    Le lien sur Internet
  • Modifier le parametre d'annulation des dernieres actions dans le classeur( valeur = 16 par défaut dans Excel )
    Le lien sur le forum XLD
  • Ouvrir le premier fichier de la liste des classeurs récemments utilisés
    Application.recentFiles(1).Open
  • Stopper une macro qui ne veut plus s'arreter
    Ctrl + Pause
  • Débuter : Comment créer une macro dans un classeur
    Le fichier zippé
  • La fonction intégrée de récupération automatique ( à partir d'Excel 2002 ).
    La fonction de récupération automatique enregistre une copie de tous les fichiers Excel ouverts à intervalle régulier défini par l'utilisateur. Il est ainsi possible de récupérer les fichiers si Excel se ferme inopinément, au cours d'une coupure de courant, par exemple.
    Cette fonction est disponible dans le menu Options , puis l'onglet "Enregistrer"
    Le lien vers l'aide MSDN
  • La suppression des métadonnées d'Office 2003/XP
    Lors de la diffusion de documents électroniques Office, ces derniers peuvent contenir des informations que vous ne souhaitez pas partager publiquement, telles que des informations considérées “cachées” ou des informations qui vous permettent de collaborer lors de la rédaction ou de la modification de documents à plusieurs.
    Microsoft propose un outil pour supprimer ces métadonnées.
    Le lien sur le site Microsoft
Les cellules
  • Verifier si la cellule active est ecrite en format gras
    Private Sub worksheet_selectionChange(byVal Target As Excel.Range)
    If Target.Font.Bold = True Then
    msgBox "oui"
    Else: msgBox "non"
    End If
    End Sub
  • Compter le nombre de cellules vides dans la plage A1:F1
    msgBox Application.countBlank(Sheets("Feuil1").Range("A1: F1"))
  • Afficher le numéro de ligne de la cellule active
    msgBox activeCell.Row
  • Afficher le numéro de colonne de la cellule active
    msgBox activeCell.Column
  • Creer une liste deroulante dans une cellule
    Sub creerListeDeroulante()
    Dim Valeur As String
    Valeur = activeCell.Address
    With Range(Valeur).Validation
    .Add Type:=xlValidateList, Formula1:="choix1,choix2"
    End With
    End Sub
    Un autre exemple
    Sub listeDeroulante()
    Dim Plage As Object
    Dim Valeur As String
    Dim Cible As String
    Valeur = activeCell.Address
    Set Plage = Application. _
    inputBox("Sélectionnez une plage pour definir la liste de choix : ", Type:=8)
    If Plage Is Nothing Then Exit Sub
    Cible = Plage.Address
    With Range(Valeur).Validation
    .Add Type:=xlValidateList, Formula1:="=" & Cible
    End With
    End Sub
  • Afficher un message si la cellule active se trouve dans une plage cible
    Private Sub worksheet_selectionChange(byVal Target As Excel.Range)
    If Not Intersect(Target, Range("A1:F10")) Is Nothing Then msgBox "le forum XLD"
    End Sub
  • Changer le nom d'une cellule avec boucle
    Sub changeNomsconditionnel()
    Dim Nom As Object
    Dim Cible As String
    Dim i As Integer, j As Integer
    Set Nom = activeWorkbook.Names
    For i = activeWorkbook.Names.Count To 1 Step -1
    If Nom(i).nameLocal = "test" Then
    Cible = Nom(i).refersToLocal
    Nom(i).Delete
    activeWorkbook.Names.Add Name:="essai", refersTo:=Cible
    End If
    Next i
    End Sub
    ou en plus direct , sans boucle
    Sub changeNomsconditionnel2()
    Dim Nom As Object
    Dim Cible As String
    Set Nom = activeWorkbook.Names
    Cible = Nom("extraction").refersToLocal
    Nom("extraction").Delete
    activeWorkbook.Names.Add Name:="extraction", refersTo:=Cible
    End Sub
  • faire clignoter des cellules de façon conditionnelle
    Le lien sur le forum XLD
    Le fichier zippé
    Une autre solution , fournie par Didier , myDearFriend
    Le lien sur le forum XLD
    Le fichier zippé
    Le fichier zippé pour Excel97
  • Position auto des cellules nommées en haut à gauche de l'écran quand elles sont sélectionnées
    Le lien sur le forum XLD
    Le fichier zippé
  • Lister les noms du classeur dans la cellule A1
    Range("A1").listNames
  • Afficher le nom de la cellule A1
    msgBox Range("A1").Name.Name
    Remarque : la macro renvoie une erreur si la cellule n'est pas nommée
  • Lister les cellules et les plages nommées dans l'ordre d'index des feuilles et créer une table des matières avec liens hypertextes
    Le lien sur le forum XLD
  • Lister les cellules et les plages nommées dans un Userform , puis cliquez dans la liste pour atteindre la cellule
    Le lien sur le forum XLD
    Le fichier zippé
  • Modifier la largeur de la colonne A
    Sub largeurColonne()
    Columns(1).columnWidth = 23
    End Sub
  • Enregistrer une plage de cellules en image au format Jpg
    Le lien sur le forum XLD
  • Supprimer les retours à la ligne vides dans une cellule
    Le lien sur le forum XLD
  • Visualiser toutes les cellules fusionnées
    Sub visualiserCellulesFusionnees()
    Dim cell As Range
    For Each cell In Feuil1.usedRange.Cells
    If cell.mergeCells = True Then cell.mergeArea.Interior.colorIndex = 6
    Next cell
    End Sub
  • Visualiser toutes les cellules contenant des formules , dans la Feuil1
    Sub emplacementFormules()
    Dim Cell As Range
    For Each Cell In Feuil1.usedRange.Cells
    If Cell.hasFormula Then Cell.Interior.colorIndex = 4
    Next Cell
    End Sub
  • Nommer des cellules non adjacentes , issues d'un filtre automatique
    Sub nommerZoneFiltree()
    activeWorkbook.Names.Add Name:="Zone1", _
    refersTo:="=Feuil1!" & Feuil1.autoFilter.Range.specialCells(xlCellTypeVis ible).Address
    End Sub
  • Lister uniquement les noms de la Feuil1
    Le lien Internet
  • Ajouter une option personnalisée dans le menu contextuel , lors du clic droit dans une cellule
    un exemple proposé par Hervé
    Le lien sur le forum XLD
  • Supprimer tous les noms dans le classeur actif
    Dim Nom As Name
    For Each Nom In activeWorkbook.Names
    Nom.Delete
    Next Nom
  • Empecher la sélection des cellules contenant des formules
    'procédure évenementielle , à placer au niveau de la feuille
    Private Sub Worksheet_selectionChange(byVal Target As Range)
    Dim Cell As Range
    For Each Cell In Selection
    If Cell.hasFormula Then Selection.Cells(1, 1).Offset(, 1).Select
    Next
    End Sub
  • La propriété currentRegion : exemple pour boucler sur les cellules contigues à la cellule A1
    Dim Plage As Range, Cell As Range
    Set Plage = Range("A1").currentRegion
    For Each Cell In Plage
    Debug.Print Cell
    Next Cell
  • Masquer ou Afficher les lignes 5 à 10
    Rows("5:10").entireRow.Hidden = True ' masquer
    Rows("5:10").entireRow.Hidden = False ' afficher
  • Insérer une formule dans la cellule B1 , par macro
    Remarque : la formule doit etre écrite en anglais dans la macro
    Range("B1").Formula = "=LINEST(G11:G14,F11:F14,FALSE,TRUE)"
    Si vous écrivez la formule en français dans la macro ,utilisez "formulaLocal" :
    Range("B1").formulaLocal = "=DROITEREG(G11:G14;F11:F14;FAUX;VRAI)"
  • Protéger une plage de cellules dans la feuille
    Sélectionnes toutes les cellules de la feuille
    Clic droit
    Selectionnes "format celllules" dans le menu contextuel %% Il faut décocher l'option "verouillé" dans l'onglet protection %% Cliques sur OK pour valider
    Ensuite tu sélectionnes uniquement la plage de cellules que tu souhaites protéger
    Clic droit
    Selectionnes "format celllules" dans le menu contextuel
    Tu coches l'option "verouillé" dans l'onglet protection
    Cliques sur OK pour valider
    Ensuite
    Menu Outils
    Protection feuille
    Protéger feuille
    Assures toi que l'option "proteger la feuille et le contenu des cellules verouillées" est cochée
    Saisie ton mot de passe ( en option )
    Revalides le mot de passe une 2eme fois
    Cliques sur OK
  • Protéger les cellules qui contiennent des formules dans la feuille Feuil1
    Sub protegerCellulesContenantFormules()
    On Error Resume Next
    With Feuil1
    .unProtect "XLD" 'le mot de passe est facultatif
    .Cells.Locked = False
    .Cells.specialCells(xlCellTypeFormulas).Locked = True
    .enableSelection = xlUnlockedCells
    .Protect "XLD" 'le mot de passe est facultatif
    End With
    End Sub
  • Comment aller à la ligne dans une cellule
    Combines les touches du clavier : Alt + Entrée
    ou
    actives le renvoi automatique dans la cellule
    Clic droit dans la cellule
    Format de cellule
    sélectionnes l'onglet "Alignement"
    coches l'option "renvoyer à la ligne automatiquement"
    cliques sur OK pour valider
    Appliquer un renvoi à la ligne automatique dans la cellule A1 , par Macro
    Range("A1").wrapText = True
  • Effectuer un décalage par rapport à une cellule : la propriété Offset
    La propriété Offset permet d'appliquer un décalage par rapport à une cellule de référence
    La synthaxe est Range("B2").Offset("numero de ligne", "numero de colonne")
    par exemple :
    Range("B2").Offset(-1, 2) = "test"
    le mot "test" va s'afficher 1 ligne plus haut et 2 colonnes sur la droite par rapport à la cellule B2 , soit en cellule D1
  • Supprimer toutes les formules dans le classeur actif
    Sub supprimeFormulesClasseur()
    Dim i As Byte
    On Error Resume Next
    For i = 1 To Sheets.Count
    activeWorkbook.Sheets(i).Cells.specialCells(xlCell TypeFormulas).Delete
    Next i
    End Sub
  • Vérifier si la cellule active est sur un numéro de ligne pair
    If activeCell.Row Mod 2 = 0 Then msgBox "oui"
  • Effacer le contenu des cellules dans la Feuil1, sans modifier les formats
    Sheets("Feuil1").Cells.clearContents
  • Accéder à la valeur d'une cellule nommée, d'un autre classeur ouvert.
    msgBox Workbooks("classeur.xls").Names("nom").refersToRan ge.Value
  • Controler la présence d'une validation (Menu Donnees / Validation) dans la cellule A1
    Sub controlePresenceValidation()
    Dim Vl As Range
    On Error Resume Next
    Set Vl = Cells.specialCells(xlCellTypeAllValidation)
    On Error goTo Fin
    If Not Intersect(Vl, Range("A1")) Is Nothing Then
    msgBox "Il y a une Validation dans la cellule"
    Else
    msgBox "Il n'y a pas de validation dans la cellule"
    End If
    Exit Sub
    Fin:
    msgBox "Il n'y a pas de validation dans la feuille"
    End Sub
  • Empecher la sélection des cellules dans la Feuil1 (Alain Vallon)
    With Sheets("Feuil1")
    .enableSelection = xlUnlockedCells
    .Protect
    End With
  • Verrouiller ou déverouiller la cellule A1 en fonction de la valeur d'une Checkbox
    Private Sub checkBox1_Click()
    If Feuil1.checkBox1.Value = True Then
    With Feuil1
    .Unprotect
    .Cells.Locked = False
    .Range("A1").Interior.colorIndex = 6
    .Range("A1").Locked = True
    .enableSelection = xlUnlockedCells
    .Protect
    End With
    Else
    With Feuil1
    .Unprotect
    .Range("A1").Locked = False
    .Range("A1").Interior.colorIndex = 3
    End With
    End If
    End Sub
  • Afficher la formule contenue dans la cellule A1
    Sub afficherFormlule()
    Range("A1") = "'" & Range("A1").formulaLocal
    End Sub
    Puis réutiliser la formule pour afficher le résultat
    Sub afficherResultat()
    Range("A1").formulaLocal = Mid(Range("A1"), 1)
    End Sub
  • Identifier les cellules qui contiennent la fonction SOUSTOTAL
    Dim Cell As Range
    For Each Cell In Range("C1:C20")
    If Cell.hasFormula And inStr(1, Cell.formulaLocal, "SOUS.TOTAL", vbTextCompare) > 0 Then Cell.Interior.colorIndex = 4
    Next

Copier Coller
  • Copier une feuille dans une nouveau classeur
    Workbooks("Classeur1.xls").Sheets("maFeuille").Cop y
  • Copier la selection dans la cellule A1 de la feuille2
    Sub copierVersFeuille2()
    Selection.Copy Sheets("feuil2").Range("A1")
    End Sub
  • Copier une plage de cellules dans un nouveau classeur et le sauvegarder
    Le lien sur le forum XLD
  • Vider le contenu du presse papier
    Sub viderPressePapier()
    'nécéssite d'activer la référence Microsoft Form 2.0 Object Library
    Dim Cible As dataObject
    Set Cible = New dataObject
    Cible.setText ""
    Cible.putInClipboard
    Set Cible = Nothing
    End Sub
  • Récupérer le contenu du presse papier dans une variable
    Sub recupererDonneePressePapier()
    'nécéssite d'activer la référence Microsoft Form 2.0 Object Library
    Dim Resultat As String
    With New dataObject
    .getFromClipboard
    Resultat = .getText(1)
    End With
    msgBox Resultat
    End Sub
  • Ouvrir un classeur pour copier une de ses feuilles dans un autre document existant puis refermer le classeur
    Le lien sur le forum XLD
  • Récupérer une image contenue dans le presse papier pour l'enregistrer sur le disque
    Le lien sur le forum XLD
  • Réaliser une capture d'écran par macro
    Private Declare Sub keybd_event Lib "user32" ( _
    byVal bVk As Byte, byVal bScan As Byte, byVal dwFlags As Long, _
    byVal dwExtraInfo As Long)
    Private Sub commandButton1_Click()
    keybd_event vbKeySnapshot, 1, 0&, 0&
    doEvents
    Range("A1").Select
    activeSheet.Paste
    End Sub
  • Coller des données de la "Feuil1" dans une feuille "data" qui est protégée
    Worksheets("data").Unprotect
    Worksheets("Feuil1").Rows("3:3").Copy
    Worksheets("data").Activate
    Worksheets("data").Paste _
    Destination:=Worksheets("data").Range("A1").End(xl Down).Offset(1, 0)
    Worksheets("data").Protect
  • Empecher l'utilisation du Copier / Coller dans un classeur
    Procédures à placer au niveau de Thisworkbook
    Private Sub Workbook_sheetActivate(byVal Sh As Object)
    Application.cutCopyMode = False
    End Sub
    Private Sub Workbook_sheetSelectionChange(byVal Sh As Object, byVal Target As Range)
    Application.cutCopyMode = False
    End Sub
  • Bug possible lors de l'utilisation de l'argument xlPasteColumnWidths avec Excel 200 et 2002:
    Si vous avez un message d'erreur en utilisant cette synthaxe dans une macro :
    activeSheet.Range("A1").pasteSpecial Paste:=xlPasteColumnWidths, _
    Operation:=xlPasteSpecialOperationNone, skipBlanks:=False, Transpose:=False
    Vous pouvez remplaçer xlPasteColumnWidths par la valeur 8 . Par exemple :
    activeSheet.Range("A1").pasteSpecial Paste:=8, _
    Operation:=xlPasteSpecialOperationNone, skipBlanks:=False, Transpose:=False
Une démo copyPasteSpecial par Myta
Le lien sur le forum XLD
Les dates et les calendriers
  • Un message à la fermeture du classeur si la date du jour est Vendredi
    Private Sub Workbook_beforeClose(Cancel As Boolean)
    If weekDay(Date, vbSunday) = 6 Then msgBox "Nous sommes Vendredi"
    End Sub
    'Date renvoie la date du jour
    'en indiquant vbSunday ,cela precise que le dimanche est le premier
    'jour de la semaine
    'Weekday renvoie donc le numero du jour dans la semaine ,par rapport au dimanche
    'le vendredi est donc le 6eme jour de la semaine
  • Supprimer la ligne si la date est dépassée
    Si les dates saisies dans la colonne A sont dépassées de 5 jours par rapport à la date du jour , les lignes sont supprimées
    Sub suppressionSelonDate()
    Dim Cible As Integer, j As Integer
    Cible = Range("A65536").End(xlUp).Row
    Application.screenUpdating = False
    For j = Cible To 1 Step -1
    If Cells(j, 1) < Date - 5 Then Rows(j).Delete
    Next
    Application.screenUpdating = True
    End Sub
  • Afficher la date du jour
    msgBox Date
  • Afficher la date du jour avec un format personnalisé
    msgBox Format(Date, "dddd dd mmmm yyyy")
  • Fonctions pour obtenir le jour , le mois ou l'annee d'une date cible
    msgBox Day("26 mai 1965")
    msgBox Month("26 mai 1965")
    msgBox Year("26/05/1965")
  • Verifier si un format de date est valide
    If isDate("26/05/1965") = True Then
    msgBox "Ok"
    Else
    msgBox "Le donnée n'est pas valide ."
    End If
  • Gestion des interventions d'un parc d'ambulances
    Le lien sur le forum XLD
    Le fichier zippé
  • Vérifier le nombre de jours ouvrés entre les dates d'expedition et de livraison , avec une option de statistiques sur le nombre de dépassements
    Le fichier zippé
  • Naviguer dans les feuilles en choisissant une date dans l'objet Calendar
    Le fichier zippé
  • Un calendrier d'aide à la saisie des dates dans Excel , par myDearFriend
    Le lien sur le forum XLD
    Téléchargez la Demo de myDearFriend
    Le fichier texte qui est joint explique comment installer la macro complémentaire .XLA et décrit toutes les options de cet outil indispensable
  • Afficher le premier jour du mois , pour une Date saisie dans la cellule A1
    Sub premierJourDuMois()
    Dim Annee As Date, Mois As Date
    Annee = Year(Range("A1"))
    Mois = Month(Range("A1"))
    msgBox Format(dateSerial(Annee, Mois, 1), "dddd dd mmmm yyyy")
    End Sub
    Pour afficher le dernier jour du mois précédent
    msgBox Format(dateSerial(Annee, Mois, 1) - 1, "dddd dd mmmm yyyy")
  • Trouver le dernier jour de chaque mois , dans une liste de dates
    Le lien sur le forum XLD
    Le fichier zippé
  • Utilisation des formats d'heure dans une macro
    exemple qui supprime les lignes si l'heure dans la colonne F est comprise entre 08h00 et 18h00
    (format des cellules hh:mm:ss )
    Dim x As Integer
    Dim Cible As Date
    For x = Range("F65536").End(xlUp).Row To 1 Step -1
    Cible = Cells(x, 6)
    If Cible >= #8:00:00 AM# And Cible <= #6:00:00 PM# Then Rows(x).Delete
    Next x
  • La fonction monthName : afficher le nom d'un mois à partir de son index
    '1=Janvier , 2=Février , 3=Mars …etc…
    msgBox monthName(2)
    'L'argument True permet d'afficher le mois en abrégé
    msgBox monthName(11, True)
  • Rechercher dans la plage A1:A10 la date la plus proche du 17/10/2005
    Sub rechercheDateProche()
    Dim Cell As Range
    Dim Cible As Double, valeurProche As Double, Ecart As Double
    Cible = 9999999999
    For Each Cell In Range("A1:A10")
    Ecart = Abs(CLng(CDate("17/10/2005")) - CLng(Cell))
    If Ecart < Cible Or Ecart = 0 Then
    Cible = Ecart
    valeurProche = Cell
    End If
    Next
    msgBox CDate(valeurProche)
    End Sub
  • Afficher l'heure universelle ( méridien de Greenwich ) , un exemple proposé par Michel_m
    Sub donner_heureGmt()
    'http://www.excel-downloads.com/forums/2-104522-temps-universel.htm
    Dim datetime As Object
    Set datetime = createObject("Wbemscripting.swbemdatetime")
    datetime.setvardate (formatDateTime(Time))
    msgBox "heure GMT:" & datetime.getvardate(False)
    End Sub
  • Calendriers Et Plannings 2005 , par Monique et Celeda
    Pour que votre plaisir de comptabiliser votre temps ou celui des autres, commence bien avant votre réalisation, Calendriers et Plannings - CEP - vous offre toute une panoplie de classeurs contenant toutes les formules possibles et inimaginables indispensables, à garder sous les yeux pour élaborer vos propres calendriers simples ou compliqués, rapides ou volutifs, avec ou sans couleurs
    Alors qu'ils s'appellent, Agendas, Calendriers, Semainiers, Gestion du Temps, Feuilles de route, Cycle de Travail, Grille horaire, planifiés, temporels, arrêtez de courir, respirez, soufflez et téléchargez CEP
    Le lien dans la zone de telechargement XLD
  • Retrouver le mois à partir du numéro de semaine et l'index du jour.
    'adapté de Daniel Maher, mpfe
    Dim Annee As Integer, Semaine As Integer, Jour As Integer
    Dim Cible As Date
    Semaine = 9
    Annee = 2006
    Jour = 1 'Lundi= 0 , Mardi=1 , Mercredi=2 ...et…
    Cible = dateSerial(Annee, 1, 3) - Weekday(dateSerial(Annee, 1, 3)) - 5 + (7 * Semaine) + Jour
    msgBox Format(Cible, "mmmm")
    'une autre possibilité
    msgBox monthName(Month(Cible))
  • Vérifier le paramètre de format Date sur le poste de travail
    Sub testParametresDate()
    msgBox Application.International(xlDateOrder)
    'Ordre des éléments de la date:
    '0 = mois-jour-année
    '1 = jour-mois-année
    '2 = année-mois-jour
    End Sub

Les Spécificités d' Excel sur Macintosh
  • De nombreuses informations interessantes sur la Wiki Page de Jean-Marie : MacVba
Utiliser la librairie Mingx et Excel pour générer des fichiers Flash ( format .SWF )
Nécéssite d'installer préalablement la DLL Mingx
Le lien sur le forum XLD
Le fichier zippé
Vous trouverez dans le fichier zippé un lien vers le site très bien documenté d'Eric Schrafstetter


Une alternative à Microsoft Office : Open OfficeSi vous constatez des erreurs dans la page n'hesitez pas à m'en faire part .
Toutes vos idees sont les bienvenues .
Michel , Mise à jour le 25 Novembre 2006

Dernière modification par MichelXld 08/03/2008 à 22h41.
MichelXld est déconnecté   Réponse avec citation
ANNONCES
Réponse



Outils de la discussion

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

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 oui
Pingbacks are oui
Refbacks are oui


Discussions similaires
Discussion Auteur Forum Réponses Dernier message
[REF] Wiki Page 3 de MichelXld MichelXld Questions les plus fréquentes (FAQ) et didacticiels 0 08/03/2008 17h27
[REF] Wiki Page 2 de MichelXld MichelXld Questions les plus fréquentes (FAQ) et didacticiels 0 08/03/2008 17h15
[REF] Wiki Page 1 de MichelXld MichelXld Questions les plus fréquentes (FAQ) et didacticiels 0 08/03/2008 17h07
MichelXLD => 2000 ! Dugenou Le salon de XLD 27 19/03/2006 20h22
Bon anniversaire MichelXLD Brigitte_et_Eric_C Le salon de XLD 27 27/05/2005 22h50


Fuseau horaire GMT +2. Il est actuellement 02h38.


(C) 2006 Excel Downloads