🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →

Excel AI Blog: VBA Tutorials, Formula Tips & Automation Guides

Expert guides on Excel formulas, VBA automation, data processing, and AI-powered productivity. Learn to master Excel with AI.

VBA MkDir dans Excel — créer un dossier, et pourquoi il ne peut pas créer un chemin imbriqué

VBA MkDir dans Excel — créer un dossier, et pourquoi il ne peut pas créer un chemin imbriqué

L'instruction VBA MkDir crée exactement un niveau de dossier, pas un chemin entier — MkDir sur un chemin dont le parent n'existe pas lève l'erreur 76, et MkDir sur un dossier qui existe déjà lève l'erreur 75 au lieu de ne rien faire. Ainsi la tâche quotidienne créer ce dossier revient en réalité à créer chaque niveau manquant, et seulement là où il est absent. Ce guide montre pourquoi MkDir ne crée qu'un seul niveau, pourquoi FileSystemObject.CreateFolder ne récurse pas davantage, la boucle protégée par un test d'existence qui construit un chemin complet en toute sécurité, et pourquoi un simple nom de dossier atterrit sous CurDir plutôt que dans le dossier de votre classeur.

Henry
VBA RmDir dans Excel — supprimer un dossier, mais seulement s'il est vide

VBA RmDir dans Excel — supprimer un dossier, mais seulement s'il est vide

L'instruction VBA RmDir supprime un dossier uniquement lorsqu'il est complètement vide — pointez-la sur un dossier qui contient encore des fichiers ou des sous-dossiers et elle lève l'erreur 75, l'exact reflet inverse de Kill, qui supprime n'importe quel fichier sans pitié. Ainsi supprimer ce dossier revient en réalité à le vider d'abord, puis à le retirer. Ce guide montre pourquoi RmDir refuse un dossier non vide, pourquoi il supprime les dossiers mais jamais les fichiers, comment vider un dossier avec Kill avant RmDir, et quand FileSystemObject.DeleteFolder efface une arborescence entière en un seul appel — sans corbeille et sans annulation.

Henry
VBA CurDir & ChDir dans Excel — pourquoi un chemin relatif atterrit dans le mauvais dossier

VBA CurDir & ChDir dans Excel — pourquoi un chemin relatif atterrit dans le mauvais dossier

En VBA, un chemin relatif n'a aucun sens tant qu'il n'est pas résolu par rapport à CurDir, le répertoire de travail courant — et dans Excel ce répertoire est un réglage vagabond que vous ne contrôlez pas, pas le dossier où votre classeur est enregistré. Ainsi MkDir Reports ou Open data.csv peut atterrir à un endroit différent à chaque exécution, parce qu'une boîte de dialogue Ouvrir un fichier déplace CurDir en silence. Ce guide montre pourquoi CurDir n'est pas ThisWorkbook.Path, pourquoi ChDir ne peut pas changer de lecteur sans ChDrive, et l'unique habitude qui élimine toute la catégorie des bugs de mauvais dossier — ancrez chaque chemin à ThisWorkbook.Path.

Henry
VBA Copy File dans Excel — FileCopy, FileSystemObject.CopyFile, et pourquoi il ne peut pas copier un classeur ouvert

VBA Copy File dans Excel — FileCopy, FileSystemObject.CopyFile, et pourquoi il ne peut pas copier un classeur ouvert

Copier un fichier en VBA tient en une ligne, mais laquelle dépend de savoir si le fichier est ouvert. FileCopy est l'instruction intégrée qui n'exige aucune référence, et elle écrase la destination en silence, pourtant elle ne peut pas copier un fichier ouvert et lève l'erreur 70 Permission denied sur le seul classeur que vous voulez le plus sauvegarder. Ce guide trace la frontière entre trois outils de copie pour trois situations — FileCopy pour les fichiers fermés sur le disque, FileSystemObject.CopyFile pour les caractères génériques et un indicateur d'écrasement explicite, et SaveCopyAs pour le classeur ouvert à l'instant même — et montre pourquoi la destination doit être un chemin complet incluant le nom du fichier, pourquoi le dossier cible doit déjà exister, et comment copier-puis-supprimer devient un déplacement.

Henry
VBA Delete File dans Excel — Kill, FileSystemObject.DeleteFile, et pourquoi il n'y a aucune annulation

VBA Delete File dans Excel — Kill, FileSystemObject.DeleteFile, et pourquoi il n'y a aucune annulation

L'instruction VBA Kill supprime un fichier définitivement — pas de Corbeille, pas de confirmation, pas d'annulation. Ce seul fait est à la fois tout l'intérêt et tout le danger, et chaque autre règle sur la suppression de fichiers est une façon de garder cette ligne irréversible. Ce guide montre pourquoi Kill lève une erreur au lieu de ne rien faire quand un fichier est absent ou ouvert, comment un caractère générique efface toutes les correspondances d'un coup sans invite, pourquoi Kill ne peut pas retirer un dossier et comment RmDir et DeleteFolder se partagent cette tâche, et quand FileSystemObject.DeleteFile avec son indicateur Force est le choix le plus sûr pour les fichiers en lecture seule.

Henry
VBA Rename File dans Excel — l'instruction Name qui déplace aussi les fichiers (et refuse d'écraser)

VBA Rename File dans Excel — l'instruction Name qui déplace aussi les fichiers (et refuse d'écraser)

L'instruction VBA Name renomme un fichier, mais c'est en réalité une instruction de renommage-et-déplacement — pointez le nouveau chemin sur un dossier différent et VBA déplace le fichier là-bas au lieu de le renommer sur place. Et contrairement à presque tout le reste sur le disque, Name refuse d'écraser, levant l'erreur 58 quand la cible existe déjà, l'exact opposé de FileCopy qui écrase en silence. Ce guide montre pourquoi Name déplace autant qu'il renomme, pourquoi il ne traverse pas les lecteurs et comment FileCopy plus Kill ou FileSystemObject.MoveFile gère ce cas, et pourquoi vous devez protéger la destination pour qu'une erreur sur un fichier existant n'arrête pas une macro sans surveillance.

Henry
VBA Dir dans Excel — parcourir les fichiers d'un dossier, et l'itérateur à état qui vous piège

VBA Dir dans Excel — parcourir les fichiers d'un dossier, et l'itérateur à état qui vous piège

Dir ressemble à une fonction mais se comporte comme un itérateur à mémoire cachée — Dir(path) renvoie le premier nom de fichier correspondant, puis Dir() sans argument renvoie le suivant, et une chaîne vide quand le dossier est épuisé. La règle qui vous sauve est de ne jamais rappeler Dir au milieu d'une boucle Dir, car un second Dir lance une nouvelle recherche et réinitialise la première — la cause numéro un des fichiers sautés et des boucles infinies. Découvrez comment parcourir chaque .xlsx d'un dossier, pourquoi Dir ne renvoie que le nom et non le chemin, pourquoi il ne sait pas récurser dans les sous-dossiers, et quand rassembler les noms dans un tableau avant d'agir.

Henry
VBA FileSystemObject dans Excel — CreateObject contre référence, sous-dossiers, et pourquoi il n'ouvre pas les classeurs

VBA FileSystemObject dans Excel — CreateObject contre référence, sous-dossiers, et pourquoi il n'ouvre pas les classeurs

Le FileSystemObject transforme le disque en un modèle objet — des dossiers et fichiers que vous parcourez avec For Each et dont vous lisez les propriétés, au lieu de l'unique curseur caché de Dir. La décision qui vous sauve est CreateObject(Scripting.FileSystemObject) plutôt que Dim fso As New FileSystemObject, car la liaison tardive n'exige aucune référence et tourne partout, tandis que la version à liaison précoce échoue à compiler sur tout PC où Microsoft Scripting Runtime n'est pas coché. Découvrez quand FSO surpasse Dir, comment récurser dans les sous-dossiers via sa collection SubFolders, comment lire Size et DateLastModified, et pourquoi FSO ouvre les fichiers texte mais jamais un classeur Excel.

Henry
VBA Check If File Exists — Dir contre FileSystemObject.FileExists, et le piège à l'intérieur d'une boucle Dir

VBA Check If File Exists — Dir contre FileSystemObject.FileExists, et le piège à l'intérieur d'une boucle Dir

Il existe deux bonnes façons de tester l'existence d'un fichier en VBA, et un mauvais réflexe. Ce réflexe est de l'ouvrir et de piéger l'erreur, ce qui est lent et masque les vraies défaillances. Les bonnes réponses sont Dir(path) (une ligne intégrée) et fso.FileExists(path) (sans état et plus clair) — et la règle qui vous sauve est de ne jamais utiliser le test Dir à l'intérieur d'une boucle Dir, car Dir partage un unique curseur caché et le test réinitialise en silence votre énumération. Découvrez pourquoi FileExists est le choix par défaut le plus sûr, comment Dir gère mal un dossier ou une barre oblique inverse finale, et pourquoi vérifier puis ouvrir exige encore un garde-fou d'erreur.

Henry
VBA Open Workbook dans Excel — Workbooks.Open, capturer la valeur de retour, et pourquoi ce n'est pas Workbook_Open

VBA Open Workbook dans Excel — Workbooks.Open, capturer la valeur de retour, et pourquoi ce n'est pas Workbook_Open

Workbooks.Open est une fonction qui renvoie le classeur qu'elle vient d'ouvrir, donc la seule règle qui vous sauve est Set wb = Workbooks.Open(path) — capturez cette valeur de retour et parlez à wb, jamais à ActiveWorkbook, qui change à l'instant où quoi que ce soit vole le focus. Découvrez la différence entre Workbooks.Open (une méthode que vous appelez) et Workbook_Open (un événement qui s'exécute automatiquement), comment protéger un chemin manquant pour obtenir un message plutôt que l'erreur d'exécution 1004, comment gérer un fichier déjà ouvert, et quels paramètres ouvrent en silence une boîte de dialogue et bloquent une macro sans surveillance.

Henry
VBA Save Workbook dans Excel — Save contre SaveAs, le piège de FileFormat, et pourquoi vos macros disparaissent

VBA Save Workbook dans Excel — Save contre SaveAs, le piège de FileFormat, et pourquoi vos macros disparaissent

Save écrase le fichier que vous avez déjà, sur place et sans boîte de dialogue. SaveAs écrit un nouveau fichier ou un nouveau type, et le numéro FileFormat est le piège — enregistrez un classeur à macros en xlOpenXMLWorkbook (51, le format xlsx) et Excel supprime en silence chaque ligne de votre VBA ; il vous faut xlOpenXMLWorkbookMacroEnabled (52) pour le xlsm. Découvrez quand utiliser Save, SaveAs et SaveCopyAs, pourquoi Save sur un classeur tout neuf fait apparaître la boîte de dialogue Enregistrer sous et bloque une macro sans surveillance, comment DisplayAlerts transforme l'invite d'écrasement en approbation anticipée, et pourquoi wb.Saved = True marque un classeur comme propre sans rien écrire.

Henry
VBA Close Workbook dans Excel — SaveChanges, l'invite qui bloque votre macro, et fermer sans enregistrer

VBA Close Workbook dans Excel — SaveChanges, l'invite qui bloque votre macro, et fermer sans enregistrer

wb.Close sur un classeur comportant des modifications non enregistrées fait surgir la boîte de dialogue modale « Voulez-vous enregistrer les modifications ? », et dans une macro sans surveillance cette boîte attend indéfiniment. Vous y répondez en code avec l'argument SaveChanges — wb.Close SaveChanges:=False abandonne, SaveChanges:=True enregistre d'abord, et l'omettre déclenche l'invite. Découvrez pourquoi fermer sans l'argument est la première raison pour laquelle une macro planifiée ne finit jamais, pourquoi la variable objet est morte à l'instant où vous fermez, en quoi Close diffère d'Application.Quit, et pourquoi fermer le dernier classeur peut laisser un EXCEL.EXE invisible en cours d'exécution.

Henry
VBA Wait dans Excel — Application.Wait, pourquoi il fige Excel, et quand utiliser Sleep à la place

VBA Wait dans Excel — Application.Wait, pourquoi il fige Excel, et quand utiliser Sleep à la place

Application.Wait est un réveil, pas un chronomètre. Vous lui donnez un moment de l'horloge où se réveiller, pas un nombre de secondes à décompter, et c'est pourquoi Application.Wait 5 ne fait presque rien alors que la bonne ligne est Application.Wait Now + TimeValue("0:00:05"). Il ne descend pas sous la seconde entière et il fige Excel pendant toute l'attente, incapable de repeindre l'écran, de mettre à jour une barre d'état ou de laisser l'utilisateur annuler. Découvrez le modèle du réveil, l'argument en temps absolu qui piège tout le monde, pourquoi les pauses inférieures à la seconde exigent Sleep, et pourquoi une pause où Excel doit rester vivant est plutôt une boucle DoEvents.

Henry
VBA Sleep dans Excel — l'appel d'API Windows, le piège PtrSafe 64 bits, et Wait vs Sleep

VBA Sleep dans Excel — l'appel d'API Windows, le piège PtrSafe 64 bits, et Wait vs Sleep

Sleep n'est pas un mot-clé VBA. C'est une fonction kernel32 de Windows que vous empruntez avec une instruction Declare pour mettre votre macro en pause pendant un nombre de millisecondes, d'où la précision inférieure à la seconde que Application.Wait ne peut pas offrir. Le piège, c'est la déclaration elle-même. Les vieilles lignes Declare Sub Sleep copiées-collées provoquent une erreur de compilation sur Excel 64 bits tant que vous n'ajoutez pas l'attribut PtrSafe dans une garde de compilation conditionnelle VBA7. Découvrez le modèle de l'API empruntée, le correctif 64 bits exact, pourquoi les millisecondes ne sont pas précises, et pourquoi Sleep fige quand même Excel, si bien qu'une pause réactive passe plutôt par une boucle DoEvents.

Henry
VBA Timer dans Excel — mesurer combien de temps prend votre macro (et pourquoi ce n'est pas un planificateur)

VBA Timer dans Excel — mesurer combien de temps prend votre macro (et pourquoi ce n'est pas un planificateur)

La fonction VBA Timer est un chronomètre, pas un minuteur de compte à rebours. Malgré son nom, elle ne déclenche jamais rien après N secondes et ne met jamais votre code en pause. Elle renvoie simplement le nombre de secondes écoulées depuis minuit, et vous la lisez deux fois pour mesurer combien de temps a pris un bloc de code. C'est donc l'outil qui prouve que ScreenUpdating = False a réellement accéléré votre macro, au lieu de le supposer. Découvrez le modèle du chronomètre, pourquoi ceux qui cherchent un minuteur veulent en général plutôt Application.OnTime, le bug de passage à minuit qui produit des temps écoulés négatifs, et sa résolution au centième de seconde.

Henry
VBA DoEvents dans Excel — empêcher Excel de passer en Ne répond pas (et pourquoi il laisse votre macro s'exécuter deux fois)

VBA DoEvents dans Excel — empêcher Excel de passer en Ne répond pas (et pourquoi il laisse votre macro s'exécuter deux fois)

DoEvents met votre macro en pause un instant et laisse Excel traiter les clics, les frappes et les redessins accumulés pendant l'exécution de votre code, ce qui empêche la fenêtre de virer au gris en Ne répond pas et rend possible un bouton d'annulation qui marche. Mais le même moment de cession qui garde Excel en vie rend aussi le contrôle à l'utilisateur en plein milieu de la macro, si bien qu'il peut cliquer de nouveau sur le même bouton et lancer une deuxième copie de votre macro à l'intérieur de la première. C'est cette réentrance, et non la performance, qui est le vrai danger. Découvrez où placer DoEvents, comment vous prémunir contre la réentrance avec un drapeau d'exécution, pourquoi vous devez le limiter en fréquence, et pourquoi ce n'est pas du multithreading.

Henry
VBA StatusBar dans Excel — afficher la progression d'une macro sans UserForm (et le message qui reste bloqué pour toujours)

VBA StatusBar dans Excel — afficher la progression d'une macro sans UserForm (et le message qui reste bloqué pour toujours)

Application.StatusBar vous permet d'écrire votre propre texte dans la barre en bas de la fenêtre Excel, ce qui est la façon la plus légère d'afficher la progression d'une macro en cours, sans UserForm et sans scintillement. La ligne que tout le monde oublie, c'est la réinitialisation. Le dernier texte que vous avez écrit y reste épinglé après la fin de la macro, car Excel ne reprend pas la barre tant que vous n'avez pas mis Application.StatusBar à False. Et elle ne se met pas à jour de façon visible à l'intérieur d'une boucle serrée à moins qu'Excel n'ait un instant pour repeindre, et c'est là qu'intervient DoEvents. Découvrez le motif écrire-puis-réinitialiser, pourquoi False vaut mieux qu'une chaîne vide, l'idiome du pourcentage de progression, et quand une vraie barre de progression mérite le surcroît de travail.

Henry
VBA DisplayAlerts dans Excel — supprimer les invites de confirmation des macros sans surveillance (et pourquoi il valide automatiquement les plus dangereuses)

VBA DisplayAlerts dans Excel — supprimer les invites de confirmation des macros sans surveillance (et pourquoi il valide automatiquement les plus dangereuses)

Application.DisplayAlerts à False dit à Excel de cesser d'afficher ses boîtes de dialogue de confirmation et d'avertissement pendant l'exécution de votre macro, si bien qu'une macro sans surveillance ne se bloque pas en attendant qu'on clique sur OK. Mais il ne fait pas taire l'avertissement, il y répond à votre place avec la réponse par défaut d'Excel, et pour des invites comme supprimer cette feuille ou écraser ce fichier, la réponse par défaut est d'y aller. Il se remet à True tout seul à la fin de la macro, si bien que le vrai piège n'est pas de le laisser désactivé pour toujours mais de supprimer un avertissement qui vous protégeait. Découvrez où il aide, la règle de la fenêtre étroite, pourquoi ce n'est pas la même chose que la gestion des erreurs, et comment il s'associe à ScreenUpdating et Calculation.

Henry
VBA ScreenUpdating dans Excel — supprimer le scintillement et accélérer les macros (et pourquoi ça ne réparera pas une macro lente)

VBA ScreenUpdating dans Excel — supprimer le scintillement et accélérer les macros (et pourquoi ça ne réparera pas une macro lente)

Application.ScreenUpdating à False dit à Excel de cesser de repeindre l'écran pendant l'exécution de votre macro et de tout redessiner une seule fois à la fin, ce qui supprime le scintillement et apporte un gain de vitesse modéré. Mais cela n'aide que lorsque votre code écrit, sélectionne ou fait défiler — greffez-le sur une macro limitée par le calcul et vous ne gagnez rien. La règle qui vous sauve, c'est qu'un plantage peut laisser l'écran figé et grisé, alors vous le rétablissez dans un gestionnaire d'erreurs, jamais en comptant sur une réinitialisation automatique. Découvrez où il aide, où il n'aide pas, le piège du scintillement dû au rétablissement imbriqué, et le motif CleanExit qui l'associe à Calculation et EnableEvents.

Henry
VBA Calculation dans Excel — passer le calcul en manuel pour la vitesse (et le piège silencieux de le laisser en manuel)

VBA Calculation dans Excel — passer le calcul en manuel pour la vitesse (et le piège silencieux de le laisser en manuel)

Application.Calculation à xlCalculationManual dit à Excel de cesser de recalculer après chaque écriture et de tout différer en une seule passe, ce qui constitue le vrai gain de vitesse sur les classeurs chargés de formules. Mais c'est l'interrupteur le plus dangereux de VBA car sa défaillance est silencieuse — laissez-le en manuel et les formules cessent de se mettre à jour sans aucun indice visuel, si bien que les totaux se figent et personne ne le voit. La règle qui vous sauve consiste à sauvegarder l'état de calcul, à forcer un recalcul avec Application.Calculate quand une étape ultérieure a besoin d'un résultat, et à rétablir l'état sauvegardé dans un gestionnaire d'erreurs plutôt que de coder Automatic en dur. Découvrez les pièges du mode manuel, l'error 1004 quand aucun classeur n'est ouvert, et le motif CleanExit.

Henry
VBA EnableEvents dans Excel — empêcher votre macro de déclencher ses propres événements (et pourquoi un plantage les laisse morts)

VBA EnableEvents dans Excel — empêcher votre macro de déclencher ses propres événements (et pourquoi un plantage les laisse morts)

Application.EnableEvents à False empêche les écritures de votre macro de déclencher des gestionnaires d'événements comme Worksheet_Change, ce qui brise la boucle infinie où un gestionnaire modifie une cellule et se redéclenche lui-même. C'est un interrupteur de justesse, pas de vitesse. La règle qui vous sauve, c'est qu'EnableEvents est une propriété au niveau de l'application qui ne se réinitialise pas d'elle-même, si bien qu'un plantage en le laissant à False laisse morts tous les événements de tous les classeurs ouverts jusqu'au redémarrage d'Excel — ce qui explique pourquoi les utilisateurs signalent que leurs boutons ont cessé de fonctionner. Découvrez le correctif du Worksheet_Change récursif, le rétablissement CleanExit, et pourquoi cet interrupteur compte encore plus que les autres.

Henry
VBA SpecialCells dans Excel — sélectionner cellules vides, cellules visibles et constantes (et pourquoi il plante quand il ne trouve rien)

VBA SpecialCells dans Excel — sélectionner cellules vides, cellules visibles et constantes (et pourquoi il plante quand il ne trouve rien)

SpecialCells laisse Excel choisir les cellules pour vous par type plutôt que par adresse — toutes les vides, toutes les lignes visibles, toutes les formules, toutes les constantes. C'est le jumeau en code de la commande Atteindre les cellules. La règle qui vous sauve, c'est que SpecialCells lève error 1004 quand il ne trouve rien du tout, si bien qu'un appel nu est une bombe à retardement ; la forme mûre associe toujours On Error Resume Next et If Not result Is Nothing. Découvrez les types de cellules qui comptent, les motifs remplir-les-vides et copier-les-lignes-visibles, et pourquoi le résultat est une référence multi-zones.

Henry
VBA Union dans Excel — combiner des plages non adjacentes en une seule référence (et pourquoi il ne déduplique pas)

VBA Union dans Excel — combiner des plages non adjacentes en une seule référence (et pourquoi il ne déduplique pas)

Union colle des rectangles éparpillés en une seule référence pour que vous puissiez colorer, effacer ou copier plusieurs blocs non adjacents en une opération — la version en code du Ctrl-clic sur plusieurs zones. La règle qui piège tout le monde, c'est qu'Union concatène, il ne déduplique pas ; les cellules qui se chevauchent sont comptées deux fois, donc .Count ment et Union est une liste de lot, pas une union d'ensembles. Découvrez le motif d'accumulation qui évite l'erreur Union of Nothing, pourquoi c'est une opération par référence au lieu d'une boucle cellule par cellule, et en quoi Union diffère d'Intersect.

Henry
VBA Intersect dans Excel — trouver où deux plages se chevauchent (et la protection Worksheet_Change que tout le monde emploie)

VBA Intersect dans Excel — trouver où deux plages se chevauchent (et la protection Worksheet_Change que tout le monde emploie)

Intersect ne renvoie que les cellules que deux plages partagent, et renvoie Nothing quand elles ne se touchent pas — et ce Nothing est tout l'intérêt. Son usage numéro un est la protection de Worksheet_Change, If Not Intersect(Target, Range) Is Nothing, qui empêche un événement de se déclencher à chaque modification de la feuille. La règle qui vous sauve, c'est qu'aucun chevauchement renvoie Nothing, si bien que tout accès à une propriété sans vérification Is Nothing plante avec error 91. Découvrez la protection d'événement complète avec EnableEvents, comment restreindre une macro à une zone cible, et en quoi Intersect diffère d'Union.

Henry
VBA Cells vs Range dans Excel — référencer des cellules par numéro (et pourquoi Cells(1, 2) est B1, pas A2)

VBA Cells vs Range dans Excel — référencer des cellules par numéro (et pourquoi Cells(1, 2) est B1, pas A2)

Cells, c'est Range adressé par des nombres. Range(A1) désigne une cellule avec une chaîne dans l'ordre de lecture, la lettre de colonne puis la ligne ; Cells(ligne, colonne) désigne une cellule avec deux entiers dans l'ordre de stockage d'Excel, la ligne d'abord puis la colonne. Voilà pourquoi Cells(1, 2) est B1, pas A2 — et pourquoi Cells, dont on peut calculer les coordonnées, est la référence conçue pour les boucles. Découvrez quand employer Cells plutôt que Range, comment bâtir un bloc à partir d'angles calculés avec Range(Cells, Cells), pourquoi un Cells nu désigne toute la feuille, et pourquoi qualifier Cells d'une feuille de calcul.

Henry
VBA Resize dans Excel — remodeler une plage depuis son ancre (et pourquoi c'est un nombre, pas un delta)

VBA Resize dans Excel — remodeler une plage depuis son ancre (et pourquoi c'est un nombre, pas un delta)

Resize fixe l'ancre en haut à gauche d'une plage et redessine le rectangle à une nouvelle taille. Il ne déplace pas la référence comme le fait Offset, et il ne sélectionne rien — il renvoie une nouvelle plage partant du même coin. La règle qui piège tout le monde, c'est que Resize(lignes, colonnes) est un nombre absolu à base 1 de la taille finale, pas un delta à ajouter, si bien que Range(A1).Resize(5, 3) donne A1:C5 et Resize(0) déclenche l'erreur 1004. Découvrez comment omettre un argument pour laisser une dimension intacte, pourquoi l'ancre est toujours en haut à gauche, et les deux motifs qui paient — retirer un en-tête avec Offset plus Resize, et réécrire un tableau dans un bloc qui lui va.

Henry
VBA CurrentRegion dans Excel — saisir tout le bloc de données en une ligne (et ce qu'une ligne vide lui fait)

VBA CurrentRegion dans Excel — saisir tout le bloc de données en une ligne (et ce qu'une ligne vide lui fait)

CurrentRegion est le bloc contigu de cellules autour d'une cellule. Excel part de votre cellule et s'étend vers l'extérieur jusqu'à rencontrer une ligne entièrement vide et une colonne entièrement vide, renvoyant le plus petit rectangle qui enferme cet îlot ininterrompu — exactement ce que sélectionne Ctrl+Maj+astérisque. Vous ne calculez pas les bords ; Excel les trouve. Le piège, c'est qu'une seule ligne ou colonne entièrement vide forme un mur qui scinde le bloc en silence, si bien que vous obtenez la moitié de vos données sans aucune erreur. Découvrez pourquoi CurrentRegion inclut l'en-tête et comment le retirer avec Offset et Resize, en quoi il diffère d'UsedRange et de End(xlUp), et quand utiliser plutôt un vrai tableau.

Henry
VBA Borders dans Excel — tracer des bordures de cellule en code (et pourquoi tout le bloc s'est retrouvé encadré)

VBA Borders dans Excel — tracer des bordures de cellule en code (et pourquoi tout le bloc s'est retrouvé encadré)

Une bordure en VBA Excel est une propriété d'un bord, pas un interrupteur sur la cellule. Une plage possède huit bordures adressables — quatre bords extérieurs, deux jeux de quadrillage intérieur et deux diagonales — et la collection Range.Borders nue les désigne toutes à la fois. C'est pourquoi Range.Borders.LineStyle = xlContinuous encadre chaque cellule au lieu de tracer un seul contour. Découvrez quand utiliser BorderAround pour le seul cadre, comment LineStyle, Weight et Color se combinent, comment définir un seul bord avec xlEdgeBottom, et comment effacer les bordures avec xlLineStyleNone.

Henry
VBA Merge Cells dans Excel — fusionner et défusionner en code (et pourquoi il vaut mieux s'en abstenir)

VBA Merge Cells dans Excel — fusionner et défusionner en code (et pourquoi il vaut mieux s'en abstenir)

Fusionner des cellules en VBA Excel n'est pas du formatage — c'est un changement structurel de la grille. Range(A1:C1).Merge fond trois cellules en une seule qui s'étend sur trois colonnes, et seule la valeur en haut à gauche survit tandis que les autres sont effacées. C'est pourquoi les cellules fusionnées cassent silencieusement le tri, les calculs de Range, les insertions de colonnes et les boucles. Découvrez Merge, UnMerge, MergeCells et MergeArea, pourquoi les pros préfèrent Center Across Selection, et comment repérer et nettoyer les cellules fusionnées sans risque en code.

Henry
VBA Column Width & Row Height dans Excel — redimensionner et AutoFit en code (et les unités qui vous piègent)

VBA Column Width & Row Height dans Excel — redimensionner et AutoFit en code (et les unités qui vous piègent)

Dimensionner des cellules en VBA Excel agit sur la colonne ou la ligne entière, et les deux dimensions utilisent des unités différentes — ColumnWidth se mesure en caractères de la police Normal, RowHeight se mesure en points. Ce décalage explique pourquoi une largeur de 10 et une hauteur de 10 n'ont rien de comparable. AutoFit est l'autre piège. Il ne s'exécute que sur une colonne ou une ligne entière, et il mesure le texte affiché, donc il ignore silencieusement les cellules fusionnées. Découvrez ColumnWidth face à la propriété Width en lecture seule, RowHeight et le retour à la ligne, EntireColumn.AutoFit, et pourquoi mettre la largeur à zéro est la mauvaise façon de masquer une colonne.

Henry
VBA Font dans Excel — définir la couleur, le gras et la taille en code (et le piège de ColorIndex)

VBA Font dans Excel — définir la couleur, le gras et la taille en code (et le piège de ColorIndex)

L'objet Font est la couche texte d'une cellule en VBA Excel — couleur, gras, italique, taille et nom, sans jamais toucher à la valeur en dessous. Le piège, c'est la couleur. Il existe trois façons de la définir et elles utilisent des espaces de nombres différents. Range.Font.Color prend un nombre RGB 24 bits, Range.Font.ColorIndex prend un index de palette de 1 à 56, et les deux ne sont pas interchangeables. Découvrez laquelle utiliser, comment mettre en gras ou redimensionner une partie de cellule avec Characters, pourquoi la coloration selon la valeur relève de la Mise en forme conditionnelle, et comment relire une couleur de police sans obtenir le mauvais nombre.

Henry
VBA Cell Color dans Excel — définir le remplissage d'arrière-plan en code (et pourquoi la couleur n'est pas une donnée)

VBA Cell Color dans Excel — définir le remplissage d'arrière-plan en code (et pourquoi la couleur n'est pas une donnée)

Range.Interior est la couche de remplissage d'une cellule en VBA Excel — la peinture derrière le texte. Définissez-la avec Interior.Color et RGB, effacez-la avec Interior.ColorIndex réglé sur xlNone, et sachez qu'un remplissage blanc n'est pas la même chose qu'une absence de remplissage. Le point plus profond, c'est qu'une cellule colorée ne porte aucune donnée. SUM et SUMIF l'ignorent, si bien que colorer pour catégoriser revient à cacher de l'information là où les formules ne peuvent pas la lire. Découvrez les propriétés de couleur, comment surligner selon une condition sans boucle qui se périme, et comment remplir de nombreuses plages rapidement.

Henry
VBA NumberFormat dans Excel — changer l'affichage d'un nombre sans changer sa valeur

VBA NumberFormat dans Excel — changer l'affichage d'un nombre sans changer sa valeur

Range.NumberFormat est la couche d'affichage d'une cellule en VBA Excel. Elle change la façon dont un nombre stocké se lit à l'écran et ne change jamais le nombre lui-même, si bien que formater une cellule pour afficher 5 alors qu'elle contient 5.4999 n'est pas un arrondi et que la somme utilise toujours 5.4999. C'est là que l'opposition apparence contre valeur mord pour de bon, car une date est en réalité un numéro de série déguisé. Découvrez le langage des codes de format, en quoi NumberFormat diffère de la fonction Format, le piège des paramètres régionaux avec NumberFormatLocal, et quand il vous faut plutôt Round.

Henry
VBA WorksheetFunction dans Excel — appeler les fonctions natives d'Excel depuis le code (et les deux façons dont elles échouent)

VBA WorksheetFunction dans Excel — appeler les fonctions natives d'Excel depuis le code (et les deux façons dont elles échouent)

Application.WorksheetFunction permet à VBA d'emprunter les plus de 450 fonctions intégrées d'Excel au lieu de réécrire SUM, VLOOKUP ou COUNTIF sous forme de boucle. Le piège, c'est qu'il existe deux façons de les appeler et qu'elles échouent différemment. WorksheetFunction.X déclenche une erreur d'exécution en l'absence de correspondance, tandis qu'Application.X renvoie une valeur d'erreur que vous testez avec IsError. Découvrez quel style d'appel choisir, pourquoi le résultat doit être un Variant, quelles fonctions ne pas appeler ainsi, et quand passer une plage entière plutôt que de boucler cellule par cellule.

Henry
VBA Remove Duplicates dans Excel — dédupliquer en une ligne (et pourquoi cela supprime sans annulation possible)

VBA Remove Duplicates dans Excel — dédupliquer en une ligne (et pourquoi cela supprime sans annulation possible)

Range.RemoveDuplicates, c'est le bouton Supprimer les doublons d'Excel en une seule ligne de code, mais il est destructeur là où une boucle ne l'est pas. Il supprime les lignes sur place, conserve la première occurrence, et ne peut pas être annulé une fois la macro exécutée. L'argument qui piège tout le monde est Columns, dont les numéros sont des décalages à l'intérieur de la plage, pas des lettres de colonne de la feuille. Découvrez le piège du décalage dans la plage, pourquoi Header xlYes compte, comment garder la dernière ligne plutôt que la première, et quand recourir plutôt au filtre avancé ou à un Dictionary.

Henry
VBA Advanced Filter dans Excel — extraire des valeurs uniques et filtrer vers une nouvelle plage (sans boucle)

VBA Advanced Filter dans Excel — extraire des valeurs uniques et filtrer vers une nouvelle plage (sans boucle)

Range.AdvancedFilter est le seul filtre qui produit des données plutôt qu'une vue. Il peut extraire une liste unique ou un ensemble de lignes correspondant à des critères vers un autre emplacement en un seul appel, sans boucle et sans rien supprimer. Ce qui déroute, c'est que sa clause WHERE vit dans des cellules, une plage de critères dont l'en-tête doit correspondre exactement aux données. Découvrez xlFilterInPlace face à xlFilterCopy, comment fonctionne la plage de critères, comment Unique True déduplique sans détruire, le piège de correspondance d'en-tête qui renvoie une sortie vide, et en quoi cela diffère d'AutoFilter et de Remove Duplicates.

Henry
VBA Find dans Excel — rechercher dans les cellules correctement (Find renvoie une Range, pas une position)

VBA Find dans Excel — rechercher dans les cellules correctement (Find renvoie une Range, pas une position)

La méthode VBA Range.Find est le Ctrl+F d'Excel pour le code, et elle déroute parce qu'elle renvoie un objet Range (ou Nothing en l'absence de correspondance) au lieu d'un nombre. Découvrez la vérification unique qui empêche le plantage error-91, le piège des arguments persistants qui fait se comporter Find différemment à chaque exécution, comment LookAt xlWhole face à xlPart tranche entre cellule entière et contenu partiel, et comment boucler FindNext pour obtenir chaque correspondance sans boucle infinie.

Henry
VBA AutoFilter dans Excel — filtrer des lignes dans le code (et pourquoi masqué n'est pas supprimé)

VBA AutoFilter dans Excel — filtrer des lignes dans le code (et pourquoi masqué n'est pas supprimé)

La méthode VBA AutoFilter filtre un tableau dans le code, mais les lignes qu'elle masque sont toujours là — elles comptent encore dans SUM, se copient encore, et occupent encore votre plage. Découvrez le modèle mental qui évite les bugs classiques, pourquoi vous devez passer par SpecialCells xlCellTypeVisible pour ne toucher que les lignes visibles, comment fonctionnent les critères et les opérateurs, le piège de la bascule qui désactive votre filtre à la deuxième exécution, et le schéma rapide filtrer-puis-supprimer pour retirer des lignes en masse.

Henry
VBA Sort dans Excel — Range.Sort vs l'objet Sort (et comment retrouver l'ordre d'origine)

VBA Sort dans Excel — Range.Sort vs l'objet Sort (et comment retrouver l'ordre d'origine)

Trier en VBA est une réorganisation permanente sans Ctrl+Z, aussi la première règle est-elle de protéger l'ordre d'origine avant d'y toucher. Découvrez le modèle mental qui sépare une vue d'une mutation, pourquoi Header xlYes compte sous peine de voir vos titres finir dans les données, la différence entre le rapide Range.Sort et l'objet Sort illimité, le piège SortFields.Clear qui hérite d'anciennes clés de tri, et pourquoi des nombres stockés en texte se trient dans le mauvais ordre.

Henry
VBA supprimer des lignes dans Excel — lignes, lignes vides et lignes selon une condition (bouclez à rebours !)

VBA supprimer des lignes dans Excel — lignes, lignes vides et lignes selon une condition (bouclez à rebours !)

Supprimer une ligne en VBA est une modification structurelle, pas un simple effacement — chaque ligne du dessous remonte pour combler le vide, et c'est pourquoi une boucle vers le bas saute des lignes. Découvrez la règle unique qui corrige tout, boucler de bas en haut ou tout supprimer d'un seul Union, en quoi EntireRow.Delete diffère de l'effacement d'une cellule, la manière rapide de retirer les lignes vides, et comment supprimer des lignes par condition sans corrompre vos données ni vos formules de référence.

Henry
VBA insérer des lignes et des colonnes dans Excel — décaler la grille dans le bon sens (et insérer dans une boucle sans chaos)

VBA insérer des lignes et des colonnes dans Excel — décaler la grille dans le bon sens (et insérer dans une boucle sans chaos)

Insérer est le miroir de supprimer — cela pousse les lignes existantes vers le bas (ou les colonnes vers la droite) pour faire de la place, si bien que le même décalage qui casse une boucle de suppression casse aussi une boucle d'insertion. Découvrez EntireRow.Insert face à une plage partielle avec l'argument Shift, pourquoi CopyOrigin décide quel voisin donne son format à la nouvelle ligne insérée, le sens sûr pour insérer dans une boucle, et la méthode en un seul appel pour ajouter de nombreuses lignes d'un coup.

Henry
VBA masquer des colonnes et des lignes dans Excel — masquer n'est pas supprimer (et pourquoi vos totaux ne changent pas)

VBA masquer des colonnes et des lignes dans Excel — masquer n'est pas supprimer (et pourquoi vos totaux ne changent pas)

Masquer une colonne en VBA, ce n'est ni la supprimer ni la filtrer — les données sont toujours là, toujours dans chaque SUM, toujours copiées lors d'une copie de plage, on leur donne simplement une largeur d'affichage nulle. Découvrez pourquoi .Hidden appartient à EntireColumn et EntireRow, pourquoi les cellules masquées comptent encore dans les formules, la ligne tout-afficher qui sauve une feuille bloquée, et en quoi les lignes masquées à la main diffèrent des lignes masquées par AutoFilter quand vous bouclez.

Henry
VBA Worksheet_BeforeDoubleClick dans Excel — transformer un double-clic en action (et supprimer le mode édition)

VBA Worksheet_BeforeDoubleClick dans Excel — transformer un double-clic en action (et supprimer le mode édition)

Worksheet_BeforeDoubleClick est l'événement qu'Excel déclenche à l'instant où vous double-cliquez une cellule, avant qu'elle ne passe en mode édition, et il vous remet la cellule Target ainsi qu'un indicateur Cancel. Mettez Cancel à True pour supprimer le mode édition et exécuter votre propre action — cocher une case, marquer une ligne comme faite, ou descendre au détail. Découvrez comment le cibler sur une seule colonne avec Intersect, pourquoi oublier Cancel fait basculer la cellule en mode édition, et où le code doit résider.

Henry
VBA Worksheet_BeforeRightClick dans Excel — remplacer le menu du clic droit (et pourquoi le désactiver n'est pas de la sécurité)

VBA Worksheet_BeforeRightClick dans Excel — remplacer le menu du clic droit (et pourquoi le désactiver n'est pas de la sécurité)

Worksheet_BeforeRightClick est l'événement qu'Excel déclenche à l'instant où vous faites un clic droit sur une cellule, avant l'apparition du menu contextuel, et il vous remet la cellule Target ainsi qu'un indicateur Cancel. Mettez Cancel à True pour supprimer le menu intégré et exécuter votre propre action ou afficher un menu personnalisé à la place. Découvrez comment le cibler avec Intersect pour ne pas paralyser Copier et Coller, pourquoi désactiver le clic droit relève de l'ergonomie plutôt que de la protection, et où le code doit résider.

Henry
VBA Workbook_BeforePrint dans Excel — bloquer une impression, tamponner un en-tête, et le piège de l'aperçu avant impression

VBA Workbook_BeforePrint dans Excel — bloquer une impression, tamponner un en-tête, et le piège de l'aperçu avant impression

Workbook_BeforePrint est l'événement qu'Excel déclenche avant que quoi que ce soit dans le classeur ne soit imprimé, et il vous remet un indicateur Cancel. Mettez Cancel à True et l'impression est bloquée — validez avant d'imprimer, ou empêchez un brouillon de sortir. Découvrez pourquoi l'événement se déclenche aussi pour l'aperçu avant impression (si bien qu'un traitement lourd fait ramer l'aperçu), pourquoi il s'exécute une seule fois pour tout le classeur plutôt que par feuille, pourquoi un Cancel silencieux est un bug, et où le code doit résider.

Henry
VBA Workbook_BeforeClose dans Excel — annuler la fermeture, proposer d'enregistrer, et où le code doit résider

VBA Workbook_BeforeClose dans Excel — annuler la fermeture, proposer d'enregistrer, et où le code doit résider

Workbook_BeforeClose est l'événement qu'Excel déclenche à l'instant où quelqu'un tente de fermer le fichier — avant que quoi que ce soit ne soit démantelé — et il vous remet un indicateur Cancel. Mettez Cancel à True et la fermeture est annulée. Découvrez comment lancer un nettoyage à la fermeture, comment empêcher Excel de demander deux fois d'enregistrer grâce à la propriété Saved, pourquoi il ne se déclenche jamais lors d'un plantage, et où le code doit résider.

Henry
VBA Workbook_BeforeSave dans Excel — valider ou bloquer un enregistrement, et ce que SaveAsUI vous dit vraiment

VBA Workbook_BeforeSave dans Excel — valider ou bloquer un enregistrement, et ce que SaveAsUI vous dit vraiment

Workbook_BeforeSave est l'événement qu'Excel déclenche à l'instant où un enregistrement est demandé — avant que quoi que ce soit ne soit écrit sur le disque — et il vous remet deux indicateurs, SaveAsUI et Cancel. Découvrez comment bloquer un enregistrement quand une cellule obligatoire est vide, comment estampiller automatiquement qui a enregistré et quand, pourquoi appeler Save dans le gestionnaire boucle à l'infini, et comment SaveAsUI vous permet d'imposer un nom de fichier.

Henry
VBA Worksheet_Activate et Deactivate dans Excel — exécuter du code au changement de feuille (et pourquoi on ne peut pas annuler un départ)

VBA Worksheet_Activate et Deactivate dans Excel — exécuter du code au changement de feuille (et pourquoi on ne peut pas annuler un départ)

Worksheet_Activate se déclenche quand une feuille devient active et Worksheet_Deactivate se déclenche à l'instant où vous la quittez — les événements d'arrivée et de départ d'une feuille. Le hic qui les définit — contrairement à BeforeClose et BeforeSave, aucun ne vous donne de Cancel, vous pouvez donc observer un changement de feuille mais pas le bloquer. Découvrez le motif d'actualisation à l'affichage, le contournement par renvoi, et les gestionnaires au niveau feuille contre niveau classeur.

Henry
VBA Class Module dans Excel — créez votre propre objet (plan contre instance, et le piège As New)

VBA Class Module dans Excel — créez votre propre objet (plan contre instance, et le piège As New)

Un class module VBA vous laisse définir votre propre type d'objet — un plan qui regroupe données et comportement — puis fabriquer autant d'instances indépendantes que voulu avec New. Le piège qui surprend tout le monde, c'est que les objets sont des types référence, donc Set b = a fait pointer les deux noms vers la même instance, et Dim x As New cache un piège d'instanciation paresseuse. Découvrez comment le nom du module devient le nom du type, quand une classe l'emporte sur un Type, et comment éviter les pièges classiques de New.

Henry
VBA Type dans Excel — regrouper des champs liés dans une seule variable (types définis par l'utilisateur ou class module)

VBA Type dans Excel — regrouper des champs liés dans une seule variable (types définis par l'utilisateur ou class module)

Un Type VBA — un type défini par l'utilisateur déclaré avec Type ... End Type — regroupe plusieurs champs liés dans une seule variable, si bien que Name, Age et Salary voyagent ensemble au lieu de former trois tableaux parallèles. C'est un type valeur, donc affecter une variable Type à une autre copie chaque champ, à la différence des objets, qui se partagent. Découvrez où placer la déclaration, pourquoi copier plutôt que partager change tout, et le moment précis où passer à un class module.

Henry
VBA Property dans Excel — Get, Let et Set (accès contrôlé aux champs d'une classe)

VBA Property dans Excel — Get, Let et Set (accès contrôlé aux champs d'une classe)

Property Get, Let et Set transforment un champ de classe en une porte — une petite procédure qui exécute votre code chaque fois que l'extérieur le lit ou l'écrit, pour valider une entrée, calculer une valeur à la volée ou rendre un champ en lecture seule. La distinction qui piège tout le monde, c'est Let contre Set — Let affecte une valeur, Set affecte un objet — et se tromper de mot-clé provoque une erreur de compilation ou d'exécution. Découvrez le motif du champ de stockage, quand une simple variable Public est le choix honnête, et comment construire une propriété en lecture seule.

Henry
VBA ActiveCell dans Excel — la cellule unique sous le curseur (ActiveCell contre Selection, et quand ça casse)

VBA ActiveCell dans Excel — la cellule unique sous le curseur (ActiveCell contre Selection, et quand ça casse)

ActiveCell est un pointeur vivant vers l'unique cellule qui a le curseur à cet instant — toujours exactement une cellule, sur la feuille active, à l'intérieur de la Selection courante. Découvrez en quoi il diffère de Selection, comment le lire et l'écrire avec .Value et .Offset, et la raison numéro un de ses plantages — il suit la feuille et le curseur laissés par l'utilisateur, ce qui en fait le mauvais outil pour du code qui ne concerne pas l'endroit où se trouve l'utilisateur.

Henry
VBA Selection dans Excel — travailler avec ce qui est en surbrillance (et pourquoi ce n'est pas toujours une Range)

VBA Selection dans Excel — travailler avec ce qui est en surbrillance (et pourquoi ce n'est pas toujours une Range)

Selection est un pointeur vivant vers ce qui est en surbrillance à cet instant — le plus souvent une plage de cellules, mais cela peut aussi être un graphique, une forme, ou rien du tout. Voilà pourquoi du code qui suppose que Selection est une plage plante dès qu'un graphique est sélectionné. Découvrez comment parcourir les cellules sélectionnées, gérer les sélections multi-zones avec .Areas, vous protéger avec TypeName, et quand ignorer complètement Selection pour nommer votre plage.

Henry
VBA Select vs Activate dans Excel — rompez avec l'habitude du .Select de l'enregistreur de macros

VBA Select vs Activate dans Excel — rompez avec l'habitude du .Select de l'enregistreur de macros

L'enregistreur de macros écrit ce que fait votre souris — Select une feuille, Select une cellule, agir sur la Selection — parce que c'est ainsi qu'une personne travaille, pas ainsi que le code devrait. Découvrez la vraie différence entre Select (mettre en surbrillance une ou plusieurs cellules) et Activate (définir l'unique cellule active), pourquoi presque chaque .Select est un détour lent et fragile que vous pouvez supprimer, les rares fois où sélectionner est vraiment nécessaire, et comment refactoriser le code de l'enregistreur pour agir directement sur des références de plage qualifiées.

Henry
VBA Workbook_Open dans Excel — exécuter une macro automatiquement à l'ouverture du fichier (et où le code doit résider)

VBA Workbook_Open dans Excel — exécuter une macro automatiquement à l'ouverture du fichier (et où le code doit résider)

Workbook_Open est l'événement qu'Excel déclenche à l'instant où votre fichier finit de s'ouvrir — du code qui s'exécute tout seul, sans bouton. Mais il ne se déclenche que s'il réside dans l'objet ThisWorkbook (pas un Module standard) et que l'utilisateur a activé les macros. Découvrez où placer le code, pourquoi il ne s'exécute jamais en silence, Workbook_Open contre Auto_Open, et comment le garder rapide et à l'épreuve des plantages.

Henry
VBA Worksheet_Change dans Excel — exécuter du code quand une cellule est modifiée (et la boucle infinie à éviter)

VBA Worksheet_Change dans Excel — exécuter du code quand une cellule est modifiée (et la boucle infinie à éviter)

Worksheet_Change est l'événement qu'Excel déclenche chaque fois qu'un utilisateur modifie une cellule de la feuille, en vous remettant la cellule modifiée sous forme de Target. Le piège qui attrape tout le monde — votre gestionnaire écrit dans une cellule, cette écriture redéclenche l'événement, et Excel boucle à l'infini. Découvrez le correctif Application.EnableEvents, comment le cibler avec Intersect, pourquoi il ignore les recalculs de formules, et où le code doit résider.

Henry
VBA Worksheet_SelectionChange dans Excel — exécuter du code quand le curseur se déplace (surligner la ligne active sans latence)

VBA Worksheet_SelectionChange dans Excel — exécuter du code quand le curseur se déplace (surligner la ligne active sans latence)

Worksheet_SelectionChange est l'événement qu'Excel déclenche chaque fois que le curseur se déplace — un clic, une touche fléchée, un appui sur Entrée. Il vous remet la nouvelle sélection sous forme de Target, ce qui rend possibles les astuces qui suivent le curseur, comme surligner la ligne active. Mais il se déclenche en permanence, si bien qu'un code lourd fait ramer toute la feuille. Découvrez le motif « surligner la ligne active » fait correctement, pourquoi il peut boucler, et comment le garder ultraléger.

Henry
VBA For Each dans Excel — parcourir une collection sans toucher à l'indice (et les pièges qu'il cache)

VBA For Each dans Excel — parcourir une collection sans toucher à l'indice (et les pièges qu'il cache)

For Each dit « fais ceci à chaque élément » et laisse VBA gérer l'ordre et les bornes — sans compteur, sans décalage d'une unité. Mais cette commodité cache trois règles strictes — la variable de boucle doit être un objet ou un Variant, parcourir un tableau est en lecture seule, et vous ne devez jamais supprimer d'une collection que vous parcourez. Découvrez quand For Each l'emporte sur For…Next et quand il vous trahit en silence.

Henry
VBA Collection dans Excel — la liste ordonnée qui s'agrandit (et pourquoi ce n'est pas un Dictionary)

VBA Collection dans Excel — la liste ordonnée qui s'agrandit (et pourquoi ce n'est pas un Dictionary)

Une Collection VBA est une liste ordonnée qui s'agrandit à chaque Add — sans ReDim, sans deviner la taille. Mais elle a quatre arêtes vives que les débutants heurtent à chaque fois — elle est en base 1 et non en base 0, on ne peut pas écraser un élément (seulement Add/Remove), une clé en double déclenche l'erreur 457, et il n'existe aucun test Exists intégré. Découvrez quand une Collection l'emporte sur un tableau ou un Dictionary, et quand elle vous coûte cher en silence.

Henry
VBA With dans Excel — écrire l'objet une seule fois (et le point initial qui fait tout basculer)

VBA With dans Excel — écrire l'objet une seule fois (et le point initial qui fait tout basculer)

L'instruction With nomme un objet une seule fois et vous laisse atteindre ses membres avec un simple point initial — moins de frappe, du code plus rapide, des blocs plus nets. Mais ce point initial est tout l'enjeu — oubliez-le et .Font devient Font, qui se lie en silence à la feuille active au lieu de votre objet. Découvrez ce que With optimise vraiment, le piège du point manquant, et comment With s'associe à For Each.

Henry
VBA Data Types dans Excel — String, Long, Double, Variant (et la bonne boîte pour chaque valeur)

VBA Data Types dans Excel — String, Long, Double, Variant (et la bonne boîte pour chaque valeur)

Un type de données VBA, c'est la forme et la taille de la boîte d'une variable — et le choisir revient à choisir ce qui peut mal tourner. Découvrez pourquoi Integer déborde à 32 767 (préférez Long), pourquoi Variant est un défaut paresseux qui cache des bugs, pourquoi l'argent réclame Currency et non Double, et comment lire les erreurs Incompatibilité de type et Dépassement de capacité.

Henry
VBA Const dans Excel — nommez vos nombres magiques (et pourquoi la valeur ne peut pas dériver)

VBA Const dans Excel — nommez vos nombres magiques (et pourquoi la valeur ne peut pas dériver)

Une constante VBA est un nom verrouillé sur une valeur à la compilation — le remède aux nombres magiques éparpillés dans votre code. Découvrez pourquoi Const empêche les valeurs de dériver, pourquoi lui affecter une valeur est une erreur de compilation (c'est la fonctionnalité, pas un défaut), pourquoi Const doit être un littéral connu à la compilation, et quand préférer Enum.

Henry
Fonction AVERAGE d'Excel — pourquoi une cellule vide et un zéro donnent deux réponses différentes

Fonction AVERAGE d'Excel — pourquoi une cellule vide et un zéro donnent deux réponses différentes

AVERAGE paraît trivial jusqu'à ce qu'une cellule vide et un zéro produisent discrètement deux moyennes différentes des « mêmes » données. AVERAGE saute les vides et le texte mais compte un vrai 0 — enregistrer « aucune vente » en 0 plutôt que de laisser la cellule vide change le résultat en silence, et rien dans la formule ne vous prévient. Apprenez le modèle mental (somme ÷ nombre de valeurs numériques uniquement), le piège vide-vs-zéro qui décide de votre réponse, pourquoi AVERAGEA n'est presque jamais ce que vous voulez, et quand une moyenne de moyennes est carrément la mauvaise question.

Henry
Moyenne pondérée dans Excel — SUMPRODUCT ÷ SUM (et pourquoi la moyenne des moyennes ment)

Moyenne pondérée dans Excel — SUMPRODUCT ÷ SUM (et pourquoi la moyenne des moyennes ment)

Excel n'a pas de fonction WEIGHTEDAVG — la bonne moyenne pondérée est =SUMPRODUCT(valeurs, poids)/SUM(poids). Ce qui compte n'est pas la formule, c'est l'erreur qu'elle corrige : prendre une AVERAGE simple de nombres qui résument des groupes de tailles différentes donne le même poids à chaque groupe, si bien qu'une région à 3 commandes pèse autant qu'une région à 300. Découvrez le modèle mental (les poids redistribuent l'influence selon la taille), pourquoi on divise par SUM(poids), le raccourci quand les poids somment à 1, les exemples moyenne générale, portefeuille et prix mélangé, et comment ajouter une condition.

Henry
Excel GEOMEAN, TRIMMEAN et HARMEAN — les moyennes pour quand la moyenne ment

Excel GEOMEAN, TRIMMEAN et HARMEAN — les moyennes pour quand la moyenne ment

Trois moyennes spécialisées pour les cas où une AVERAGE simple donne une réponse fausse ou trompeuse. GEOMEAN est la bonne moyenne pour les taux de croissance et les rendements — une année à +50 % et une année à −50 % ne font pas une moyenne de 0 %. TRIMMEAN écarte les valeurs extrêmes hautes et basses avant de moyenner, comme la notation olympique. HARMEAN est la bonne moyenne pour les taux comme la vitesse et les ratios cours/bénéfice. Découvrez quel mensonge chacune corrige, le motif GEOMEAN(1+r)−1 pour un vrai CAGR, pourquoi les trois moyennes se rangent toujours harmonique ≤ géométrique ≤ arithmétique, et les pièges #NOMBRE!.

Henry
Excel PRODUIT — multiplier toute une plage (et pourquoi ce n'est pas qu'un *)

Excel PRODUIT — multiplier toute une plage (et pourquoi ce n'est pas qu'un *)

La fonction PRODUIT d'Excel multiplie une plage en un seul appel — mais la vraie raison de la préférer à l'opérateur * tient à ce qu'elle fait du texte et des cellules vides : elle les ignore, tandis que * renvoie une erreur sur du texte ou réduit silencieusement votre résultat à zéro dès qu'une cellule est vide. Découvrez le modèle mental (PRODUIT est le jumeau multiplicatif de SOMME), l'astuce de croissance composée =PRODUIT(1+plage), en quoi PRODUIT diffère de SOMMEPROD, et quand une chaîne de * reste malgré tout le meilleur choix.

Henry
Excel FACT (factorielle) — n!, FACTDOUBLE & MULTINOMIALE (et le débordement à 171!)

Excel FACT (factorielle) — n!, FACTDOUBLE & MULTINOMIALE (et le débordement à 171!)

La fonction FACT d'Excel calcule une factorielle — =FACT(5) vaut 5×4×3×2×1 = 120 — mais la première chose à comprendre est ce que signifie une factorielle : le nombre de façons d'ordonner n objets distincts. Découvrez pourquoi FACT(0) vaut 1, pourquoi FACT(171) renvoie #NOMBRE! (la plus grande factorielle possible dans Excel est 170!), en quoi FACTDOUBLE et MULTINOMIALE diffèrent, et pourquoi FACT est l'atome dont sont bâties toutes les fonctions de combinaisons et de permutations.

Henry
Excel COMBIN & PERMUTATION — combinaisons et permutations (l'ordre compte-t-il ?)

Excel COMBIN & PERMUTATION — combinaisons et permutations (l'ordre compte-t-il ?)

COMBIN et PERMUTATION comptent toutes deux le nombre de façons de choisir k éléments parmi n — la différence tient à l'importance de l'ordre. PERMUTATION compte les arrangements ordonnés (un podium, un code PIN) ; COMBIN compte les sélections non ordonnées (un loto, un comité), et c'est toujours le plus petit nombre. Découvrez la grille 2×2 qui choisit la bonne fonction à tous les coups (ordre × répétition → PERMUTATION / PERMUTATIONA / COMBIN / COMBINA), l'exemple des chances au loto =COMBIN(49;6), et pourquoi se tromper ne déclenche aucune erreur — juste un décompte faux d'un facteur k!.

Henry
Excel TEMPS, HEURE, MINUTE et SECONDE — Lire et construire la fraction derrière l'horloge

Excel TEMPS, HEURE, MINUTE et SECONDE — Lire et construire la fraction derrière l'horloge

Une heure d'horloge dans Excel est une fraction d'une journée de 24 heures — 6:00 vaut littéralement 0,25. HOUR, MINUTE et SECOND lisent les morceaux contenus dans cette fraction ; TIME construit une fraction à partir de morceaux et repasse discrètement après minuit ; TIMEVALUE analyse une heure-texte en cette fraction. Découvrez le modèle mental, pourquoi HOUR renvoie 6 pour une durée de 30 heures, comment TIME(25,0,0) devient 1 h du matin, comment ajouter 90 minutes, et quand recourir plutôt à l'arithmétique.

Henry
Convertir une heure en heures décimales dans Excel — L'astuce du ×24 (et calculer les heures travaillées)

Convertir une heure en heures décimales dans Excel — L'astuce du ×24 (et calculer les heures travaillées)

Une heure dans Excel est une fraction de journée, donc 8:15 est stockée comme 0,34375, et non 8,25. Pour la convertir en heures décimales, multipliez par 24 — la formule d'heure la plus recherchée. Découvrez pourquoi heures × taux horaire donne un résultat 24 fois trop petit, comment (end − start) × 24 donne les heures travaillées, l'astuce MOD pour les postes de nuit qui passent minuit, la soustraction des pauses non payées, et l'arrondi du temps facturable au quart d'heure le plus proche.

Henry
Additionner des heures au-delà de 24 heures dans Excel — Pourquoi votre total se réinitialise (et le correctif [h]:mm)

Additionner des heures au-delà de 24 heures dans Excel — Pourquoi votre total se réinitialise (et le correctif [h]:mm)

Additionnez une colonne d'heures et le total affiche 1:30 au lieu de 25:30 — SUM a raison, c'est le format qui ment. Le format h:mm par défaut d'Excel n'affiche que le reste après les jours entiers, donc il reboucle à 24 heures. Le correctif est le format personnalisé [h]:mm, où les crochets disent à Excel d'accumuler au lieu de reboucler. Découvrez pourquoi les heures négatives affichent #######, comment obtenir un total décimal, et l'aide-mémoire des formats d'heure.

Henry
Excel SIN, COS & TAN — pourquoi =SIN(30) ne vaut pas 0,5 (le piège des radians)

Excel SIN, COS & TAN — pourquoi =SIN(30) ne vaut pas 0,5 (le piège des radians)

Les fonctions SIN, COS et TAN d'Excel mesurent les angles en radians, pas en degrés — donc =SIN(30) renvoie -0,988, pas 0,5, et Excel ne le signale jamais comme une erreur. Découvrez le seul modèle mental qui corrige toute réponse trigonométrique erronée (envelopper les degrés dans RADIANS), pourquoi TAN explose près de 90° au lieu de renvoyer une erreur, et comment conserver une seule unité d'angle sur toute une feuille.

Henry
Excel RADIANS, DEGRES & PI — convertir les unités d'angle (et pourquoi PI() est une fonction)

Excel RADIANS, DEGRES & PI — convertir les unités d'angle (et pourquoi PI() est une fonction)

RADIANS et DEGRES sont le pont entre l'unité d'angle dans laquelle vous pensez (les degrés) et celle qu'exigent les fonctions trigonométriques d'Excel (les radians). Découvrez où placer chaque convertisseur — RADIANS avant SIN/COS/TAN, DEGRES après les fonctions inverses — pourquoi PI() a besoin de ses parenthèses sous peine de renvoyer #NOM?, et pourquoi il ne faut jamais coder en dur 3,14159.

Henry
Excel ATAN & ATAN2 — tangente inverse, arctan et l'angle à partir de X,Y

Excel ATAN & ATAN2 — tangente inverse, arctan et l'angle à partir de X,Y

Les fonctions trigonométriques inverses ASIN, ACOS, ATAN et ATAN2 retransforment un rapport en angle — et elles renvoient cet angle en radians, donc vous les enveloppez dans DEGRES. Découvrez pourquoi ATAN ne sait pas dans quel quadrant vous êtes, comment ATAN2 y remédie, le fameux piège où ATAN2(x, y) d'Excel inverse l'ordre des arguments utilisé par tous les langages de programmation, et pourquoi ASIN/ACOS de toute valeur hors de -1..1 renvoie #NOMBRE!.

Henry
Fonction PMT dans Excel — Calculer les mensualités de prêt et de crédit immobilier (et la répartition capital/intérêts)

Fonction PMT dans Excel — Calculer les mensualités de prêt et de crédit immobilier (et la répartition capital/intérêts)

VPM (PMT) trouve l'unique mensualité constante qui rembourse un prêt à l'euro près — et elle renvoie volontairement un nombre négatif. Découvrez la convention de signe (l'argent qui sort est négatif), l'erreur numéro un (un taux annuel avec des périodes mensuelles), les cinq arguments, comment INTPER et PRINCPER (IPMT/PPMT) séparent chaque versement en intérêts et capital, et comment bâtir un tableau d'amortissement.

Henry
Fonctions FV et PV dans Excel — Valeur future, valeur actuelle et la règle des cinq

Fonctions FV et PV dans Excel — Valeur future, valeur actuelle et la règle des cinq

VC (FV) et VA (PV) sont la même équation de valeur temporelle de l'argent que VPM (PMT), résolue pour une inconnue différente. Cinq variables — rate, nper, pmt, pv, fv — et une fonction par inconnue : connaissez-en quatre, obtenez la cinquième. Découvrez la valeur future d'un plan d'épargne, la valeur actuelle d'un flux de versements, la même convention de signe (l'argent qui entre est négatif), l'argument type pour l'annuité de début de période, et quand recourir à RATE et NPER.

Henry
Fonctions NPV et IRR dans Excel — Actualisation des flux de trésorerie et taux de rendement

Fonctions NPV et IRR dans Excel — Actualisation des flux de trésorerie et taux de rendement

NPV et IRR gèrent les flux de trésorerie que PMT et FV ne savent pas traiter — ceux, inégaux et irréguliers, d'un vrai projet. La plus grosse erreur, et toute la raison de lire ceci : le NPV d'Excel suppose que la première valeur arrive une période dans le FUTUR, donc un investissement à l'instant zéro doit rester EN DEHORS de l'appel à NPV. Découvrez le NPV bien posé, IRR et pourquoi il renvoie #NUM!, le piège des TRI multiples, et pourquoi XNPV et XIRR (dates réelles) sont ce que les analystes utilisent vraiment.

Henry
Excel DSUM et DCOUNT — additionner et compter les lignes qui correspondent à une table de critères

Excel DSUM et DCOUNT — additionner et compter les lignes qui correspondent à une table de critères

DSUM et DCOUNT répondent à « totalise (ou compte) les lignes qui correspondent », mais vous écrivez les conditions sous forme de petite table sur la feuille, pas à l'intérieur de la formule. Découvrez les trois arguments, pourquoi la base de données doit inclure sa ligne d'en-têtes, comment une plage de critères encode le ET et le OU, pourquoi DCOUNT ignore le texte (utilisez DCOUNTA) et quand un bloc de critères visible l'emporte sur SUMIFS.

Henry
Fonction DGET dans Excel — extraire un seul enregistrement, et échouer bruyamment quand il n'y en a pas

Fonction DGET dans Excel — extraire un seul enregistrement, et échouer bruyamment quand il n'y en a pas

DGET extrait une valeur unique d'un tableau à l'aide d'une plage de critères — et son trait distinctif, c'est qu'il génère une erreur volontairement : #NUM! quand plus d'une ligne correspond, #VALUE! quand aucune ne correspond. Ce n'est pas un bug, c'est un contrôle d'unicité intégré que VLOOKUP saute en silence. Découvrez les trois arguments, les recherches multicritères sans colonne auxiliaire, et quand DGET l'emporte sur XLOOKUP (et quand ce n'est pas le cas).

Henry
Fonctions de base de données Excel — DAVERAGE, DMAX, DMIN et la maîtrise de la plage de critères

Fonctions de base de données Excel — DAVERAGE, DMAX, DMIN et la maîtrise de la plage de critères

Les douze fonctions D — DSUM, DCOUNT, DGET, DAVERAGE, DMAX, DMIN et les autres — partagent toutes une signature et une compétence : la plage de critères. Découvrez comment un bloc de critères encode le ET et le OU, pourquoi une plage sur un seul champ réclame son en-tête en double, comment fonctionnent les critères sous forme de formule (et la règle d'en-tête qui les fait réussir ou échouer), le piège du « commence par » qui sur-compte, et l'arbre de décision entre fonctions D, SUMIFS et FILTER.

Henry
Fonction GROUPBY dans Excel — Grouper et synthétiser des données avec une seule formule

Fonction GROUPBY dans Excel — Grouper et synthétiser des données avec une seule formule

GROUPBY(champs_lignes; valeurs; fonction) groupe les lignes et les agrège dans une seule formule qui se déverse — le remplaçant moderne du duo UNIQUE + SUMIFS et, pour bien des rapports, du tableau croisé dynamique lui-même. Le piège qui surprend tout le monde : vous passez la fonction par son nom (SUM, pas SUM()), car c'est une lambda qu'Excel applique à chaque groupe. Découvrez les trois arguments obligatoires, pourquoi elle se recalcule en direct là où un tableau croisé se périme, comment ajouter des totaux et trier par la valeur agrégée, et la version qu'elle exige.

Henry
Fonction PIVOTBY dans Excel — Construire un tableau croisé dynamique avec une formule

Fonction PIVOTBY dans Excel — Construire un tableau croisé dynamique avec une formule

PIVOTBY(champs_lignes; champs_colonnes; valeurs; fonction) est GROUPBY doté d'une seconde dimension — il croise les données dans une grille lignes par colonnes, un tableau croisé dynamique exprimé sous forme d'une seule formule qui se déverse et se recalcule en direct, sans Actualiser. Découvrez les quatre arguments obligatoires, pourquoi champs_lignes et champs_colonnes ne sont pas interchangeables, comment ajouter des totaux sur les deux axes, et le vrai compromis face à un tableau croisé dynamique classique (vivant et référençable, mais sans interactivité glisser-déposer). Exige Excel 365.

Henry
GROUPBY et PIVOTBY avancés — Pourcentage du total, métriques multiples et agrégations personnalisées

GROUPBY et PIVOTBY avancés — Pourcentage du total, métriques multiples et agrégations personnalisées

Les arguments facultatifs que GROUPBY et PIVOTBY partagent sont l'endroit où ils cessent de remplacer les tableaux croisés dynamiques pour commencer à les surpasser : PERCENTOF pour le pourcentage du total en un seul mot, plusieurs colonnes de valeurs pour plusieurs métriques d'un coup, une LAMBDA dans l'emplacement fonction pour une moyenne pondérée que les tableaux croisés ne savent pas faire, et matrice_filtre pour n'agréger que les lignes voulues. Découvrez la grammaire des fonctions êta-réduites, le piège du pourcentage du total, et les erreurs (#CALC!, #FIELD!, #SPILL!) qui vous disent quel argument est faux.

Henry
Fonctions ROW & COLUMN (LIGNE & COLONNE) Excel — Obtenir la position d'une cellule, pas sa valeur

Fonctions ROW & COLUMN (LIGNE & COLONNE) Excel — Obtenir la position d'une cellule, pas sa valeur

ROW([référence]) renvoie un numéro de ligne et COLUMN([référence]) un numéro de colonne — la position d'une cellule, jamais son contenu. Sans argument, chacune renvoie la coordonnée de la cellule qui contient la formule. Découvrez le modèle mental qui sépare « où se trouve une cellule » de « ce qu'elle contient », comment ROW() moins une ancre construit des numéros d'ordre qui se réparent tout seuls, pourquoi MOD(ROW(),n) pilote le zébrage et le regroupement, et le piège n°1 : ROW(C10) vaut 10, pas la valeur de C10.

Henry
Fonctions ROWS & COLUMNS (LIGNES & COLONNES) Excel — Compter la taille d'une plage (pas sa position)

Fonctions ROWS & COLUMNS (LIGNES & COLONNES) Excel — Compter la taille d'une plage (pas sa position)

ROWS(matrice) renvoie combien de lignes possède une plage et COLUMNS(matrice) combien de colonnes — une taille, pas une position. ROWS(A1:A10) vaut 10 ; COLUMNS(A1:C1) vaut 3. Découvrez pourquoi les formes plurielles diffèrent de ROW et COLUMN, l'usage phare d'un index de colonne VLOOKUP qui s'ajuste tout seul grâce à COLUMNS(), le décompte des lignes qu'un FILTER renvoie, et le piège n°1 : le mélange singulier/pluriel qui échoue en silence dans les formules matricielles.

Henry
Fonction HYPERLINK (LIEN_HYPERTEXTE) Excel — Créer des liens cliquables qui se mettent à jour tout seuls

Fonction HYPERLINK (LIEN_HYPERTEXTE) Excel — Créer des liens cliquables qui se mettent à jour tout seuls

HYPERLINK(link_location, [friendly_name]) est une formule qui construit un saut cliquable — vers une cellule, une feuille, un fichier, une page web ou un e-mail — dont d'autres formules peuvent calculer la cible. Ce n'est pas la même chose que le menu Insertion > Lien, qui crée un lien statique. Découvrez le préfixe # pour sauter à l'intérieur d'un classeur, les cibles dynamiques avec ADDRESS et MATCH, le piège n°1 selon lequel le lien navigue au clic au lieu de récupérer une valeur, et pourquoi vous devriez toujours passer friendly_name.

Henry
Excel ALEA & ALEA.ENTRE.BORNES — générer des nombres aléatoires (et les figer)

Excel ALEA & ALEA.ENTRE.BORNES — générer des nombres aléatoires (et les figer)

ALEA() renvoie un décimal aléatoire de 0 jusqu'à 1 exclu ; ALEA.ENTRE.BORNES(min; max) renvoie un entier aléatoire dans une plage, les deux bornes incluses. Découvrez le modèle mental selon lequel les deux sont volatiles — elles se recalculent à chaque modification — pourquoi c'est le piège n° 1, comment les figer avec le Collage spécial, pourquoi ALEA.ENTRE.BORNES répète des valeurs, et la formule =a+(b-a)*ALEA() pour des décimaux aléatoires.

Henry
Excel TABLEAU.ALEA — une seule formule pour toute une grille de nombres aléatoires

Excel TABLEAU.ALEA — une seule formule pour toute une grille de nombres aléatoires

TABLEAU.ALEA([lignes];[colonnes];[min];[max];[nombre_entier]) déverse un bloc de nombres aléatoires depuis une seule formule — ALEA et ALEA.ENTRE.BORNES fusionnées et améliorées. Découvrez pourquoi l'indicateur nombre_entier vaut FAUX par défaut (vous obtenez des décimaux sauf demande d'entiers), pourquoi elle reste volatile, quand elle renvoie #PROPAGATION!, et l'astuce de mélange SORTBY(liste; TABLEAU.ALEA(...)).

Henry
Comment sélectionner, échantillonner et mélanger des lignes au hasard dans Excel

Comment sélectionner, échantillonner et mélanger des lignes au hasard dans Excel

L'astuce unique derrière chaque tirage aléatoire dans Excel : attacher un nombre aléatoire à chaque ligne, puis trier dessus. Découvrez le one-liner moderne TAKE(SORTBY(données; TABLEAU.ALEA(...)); n), la méthode classique à colonne d'aide ALEA, la distinction cruciale avec remise contre sans remise qui gâche les échantillons, et pourquoi il faut figer la colonne aléatoire avant de trier.

Henry
Excel PUISSANCE & RACINE — exposants, racines et les pièges de priorité

Excel PUISSANCE & RACINE — exposants, racines et les pièges de priorité

PUISSANCE(x;n) et l'opérateur ^ élèvent un nombre à une puissance ; RACINE(x) est le raccourci de la racine carrée pour ^(1/2). Comprenez le modèle mental selon lequel les racines ne sont que des exposants fractionnaires, pourquoi =-3^2 renvoie 9 et =27^1/3 renvoie 9 (deux pièges de priorité des opérateurs), pourquoi RACINE d'un négatif donne #NOMBRE!, et comment une seule formule PUISSANCE vous donne le TCAM.

Henry
Excel ABS & SIGNE — valeur absolue, grandeur et le signe que l'on écarte

Excel ABS & SIGNE — valeur absolue, grandeur et le signe que l'on écarte

ABS(x) renvoie la grandeur d'un nombre (sa distance à zéro) ; SIGNE(x) n'en renvoie que la direction, sous la forme -1, 0 ou +1. Comprenez le modèle mental selon lequel tout nombre est une grandeur multipliée par une direction, pourquoi un test de tolérance a besoin de ABS(A-B) et non de A-B, l'identité x = SIGNE(x)*ABS(x), et pourquoi ABS est l'outil des cas où la direction n'a vraiment aucune importance — pas un pansement sur un signe que vous n'attendiez pas.

Henry
Excel EXP, LN & LOG — logarithmes, taux de croissance et le piège de la base par défaut

Excel EXP, LN & LOG — logarithmes, taux de croissance et le piège de la base par défaut

EXP(x) élève e à une puissance ; LN, LOG10 et LOG en sont les réciproques. Comprenez le modèle mental selon lequel un logarithme est une élévation à une puissance parcourue à l'envers (on cherche l'exposant), pourquoi LOG(x) sans base est en base 10 et NON le logarithme népérien, pourquoi LN(0) et LOG d'un négatif donnent #NOMBRE!, et les deux formules dont les professionnels ont réellement besoin : moyenne géométrique = EXP(MOYENNE(LN)) et durée jusqu'à un objectif = LN(objectif)/LN(taux).

Henry
Fonctions Excel FORMULETEXTE (FORMULATEXT) et ESTFORMULE (ISFORMULA) — Lire et auditer la formule contenue dans une cellule

Fonctions Excel FORMULETEXTE (FORMULATEXT) et ESTFORMULE (ISFORMULA) — Lire et auditer la formule contenue dans une cellule

FORMULETEXTE(référence) renvoie la formule d'une cellule sous forme de texte ; ESTFORMULE(référence) renvoie VRAI lorsqu'une cellule contient une formule. Découvrez le modèle mental — ces fonctions auditent une feuille, elles ne calculent pas —, le #N/A obtenu sur une cellule sans formule, l'astuce de mise en forme conditionnelle qui surligne chaque formule, et quand les préférer à Afficher les formules.

Henry
Fonction Excel CELLULE (CELL) — Obtenir l'adresse, le format, le type et le nom de fichier d'une cellule

Fonction Excel CELLULE (CELL) — Obtenir l'adresse, le format, le type et le nom de fichier d'une cellule

CELLULE(type_info; [référence]) renvoie des métadonnées sur une cellule — son adresse, sa ligne, sa colonne, son format de nombre, son type de contenu ou le nom de fichier du classeur — au lieu de sa valeur. Découvrez le modèle mental, pourquoi type_info est une chaîne mot-clé, la tâche pour laquelle elle reste unique (récupérer le chemin du fichier et le nom de la feuille), et le piège de recalcul qui la fait paraître fautive.

Henry
Fonctions Excel TYPE et N — Diagnostiquer quel genre de valeur vous détenez vraiment

Fonctions Excel TYPE et N — Diagnostiquer quel genre de valeur vous détenez vraiment

TYPE(valeur) renvoie un code décrivant le genre de valeur que contient une cellule — 1 nombre, 2 texte, 4 logique, 16 erreur, 64 matrice — et N(valeur) convertit une valeur en nombre. Découvrez le modèle mental, comment TYPE démasque les nombres stockés en texte, pourquoi N(«quoi que ce soit») renvoie 0 au lieu d'une erreur, et l'astuce classique de N() pour glisser un commentaire à l'intérieur d'une formule.

Henry
Fonction Excel SI.MULTIPLE (SWITCH) — Remplacer les SI imbriqués par une formule à plat et lisible

Fonction Excel SI.MULTIPLE (SWITCH) — Remplacer les SI imbriqués par une formule à plat et lisible

SI.MULTIPLE compare une expression à une liste de valeurs exactes et renvoie la première correspondance — =SWITCH(expr, val1, res1, val2, res2, default). Découvrez le modèle mental, pourquoi elle ne fait que de l'égalité exacte (la frontière entre SI.MULTIPLE et SI.CONDITIONS), le piège de l'argument par défaut qui renvoie #N/A, l'astuce SWITCH(TRUE()) pour gérer les plages, et quand la préférer à un SI imbriqué.

Henry
Fonction Excel CHOISIR (CHOOSE) — Sélectionner le Nième élément par position (et son superpouvoir caché)

Fonction Excel CHOISIR (CHOOSE) — Sélectionner le Nième élément par position (et son superpouvoir caché)

CHOISIR renvoie le Nième élément d'une liste par sa position — =CHOOSE(index_num, value1, value2, …). Découvrez le modèle mental, pourquoi elle sélectionne par position et non par correspondance (la frontière entre CHOISIR et SI.MULTIPLE), le #VALEUR! obtenu quand l'index sort des limites, et son superpouvoir sous-exploité — renvoyer des plages entières pour basculer entre scénarios ou réordonner des colonnes en vue d'une recherche vers la gauche.

Henry
Fonctions Excel MAX.SI.ENS et MIN.SI.ENS (MAXIFS/MINIFS) — Max et min conditionnels sans formule matricielle

Fonctions Excel MAX.SI.ENS et MIN.SI.ENS (MAXIFS/MINIFS) — Max et min conditionnels sans formule matricielle

MAX.SI.ENS et MIN.SI.ENS renvoient la plus grande ou la plus petite valeur qui satisfait une ou plusieurs conditions — =MAXIFS(max_range, criteria_range1, criteria1, …). Découvrez le modèle mental, l'ordre des arguments qui piège les habitués de SOMME.SI, pourquoi elles remplacent l'ancienne formule matricielle {=MAX(IF())}, et le piège du 0 silencieux qu'elles renvoient quand aucune ligne ne correspond.

Henry
Excel COUNT, COUNTA et COUNTBLANK — compter les nombres, les cellules non vides et les cellules vides

Excel COUNT, COUNTA et COUNTBLANK — compter les nombres, les cellules non vides et les cellules vides

COUNT ne compte que les nombres, COUNTA compte toute cellule non vide et COUNTBLANK compte les cellules vides — trois fonctions pour trois questions différentes du type combien y en a-t-il. Découvrez pourquoi =COUNT sur une colonne d'identifiants texte renvoie 0, pourquoi COUNTA compte quand même une formule qui renvoie une chaîne vide, et pourquoi COUNTA plus COUNTBLANK ne fait pas toujours le total.

Henry
Excel COUNTIF — compter les cellules qui remplissent une condition (et les pièges des critères)

Excel COUNTIF — compter les cellules qui remplissent une condition (et les pièges des critères)

COUNTIF compte les cellules qui remplissent une seule condition — =COUNTIF(plage, critère) — où le critère est un petit test écrit sous forme de texte. Découvrez pourquoi les opérateurs doivent aller entre guillemets, comment utiliser la valeur d'une cellule comme seuil avec &, les caractères génériques pour les correspondances de texte, le piège des 15 chiffres sur les longs nombres, et quand passer à COUNTIFS.

Henry
Comment compter les valeurs uniques dans Excel — la méthode moderne et la formule classique

Comment compter les valeurs uniques dans Excel — la méthode moderne et la formule classique

Excel n'a pas de fonction COUNTUNIQUE, donc compter les valeurs distinctes a deux réponses — la moderne =COUNTA(UNIQUE(plage)) dans 365/2021, et la classique =SUMPRODUCT(1/COUNTIF(plage,plage)) pour les versions plus anciennes. Découvrez pourquoi les cellules vides ajoutent 1 à votre comptage, comment les exclure avec FILTER, pourquoi la formule classique renvoie #DIV/0!, et la différence entre les valeurs distinctes et les valeurs qui n'apparaissent qu'une fois.

Henry
SUPPRESPACE et EPURAGE dans Excel — éliminez les caractères invisibles qui cassent vos recherches

SUPPRESPACE et EPURAGE dans Excel — éliminez les caractères invisibles qui cassent vos recherches

SUPPRESPACE (TRIM) et EPURAGE (CLEAN) suppriment tous deux des caractères invisibles issus de texte importé, mais ne visent pas la même chose — SUPPRESPACE retire les espaces superflus (ASCII 32), EPURAGE retire les caractères de contrôle non imprimables (0 à 31). Aucun des deux n'enlève l'espace insécable CHAR(160) laissé par les copies du web et des PDF, la première cause du fameux « SUPPRESPACE ne marche pas ». Découvrez le bon modèle mental et la formule unique qui attrape tout.

Henry
MAJUSCULE, MINUSCULE et NOMPROPRE dans Excel — changer la casse sans abîmer vos données

MAJUSCULE, MINUSCULE et NOMPROPRE dans Excel — changer la casse sans abîmer vos données

MAJUSCULE, MINUSCULE et NOMPROPRE modifient la casse du texte, mais dans Excel la casse relève de l'affichage et de l'export, pas de la correspondance — la comparaison avec = et RECHERCHEV ignorent déjà la casse. Le vrai piège, c'est NOMPROPRE, qui met une majuscule à chaque mot et transforme McDonald en Mcdonald et iPhone en Iphone. Découvrez quand la casse compte vraiment et pourquoi NOMPROPRE est un point de départ, pas une finition.

Henry
Fonction NBCAR d'Excel — comptez les caractères et révélez les nuisances invisibles

Fonction NBCAR d'Excel — comptez les caractères et révélez les nuisances invisibles

NBCAR compte les caractères d'une cellule, mais sa vraie force est diagnostique — parce qu'il compte chaque caractère, y compris les espaces finaux et les caractères non imprimables, NBCAR permet de prouver qu'une cellule qui ressemble à « Apple » est en réalité « Apple » avec 6 caractères. Découvrez NBCAR pour la validation, l'astuce de comptage NBCAR moins NBCAR, l'extraction dynamique, et pourquoi NBCAR ignore la mise en forme des nombres.

Henry
Fonction VLOOKUP dans Excel — Comment l'utiliser, et le 4ᵉ argument qui la fait dérailler

Fonction VLOOKUP dans Excel — Comment l'utiliser, et le 4ᵉ argument qui la fait dérailler

VLOOKUP parcourt la colonne la plus à gauche d'un tableau et compte N colonnes vers la droite — cette conception unidirectionnelle est à l'origine de tous ses bugs. Découvrez pourquoi le 4ᵉ argument (range_lookup) doit presque toujours valoir FALSE, pourquoi VLOOKUP ne sait pas regarder à gauche, pourquoi un numéro de colonne codé en dur casse en silence dès que vous insérez une colonne, et comment corriger le #N/A qui signifie « introuvable ».

Henry
Excel INDEX & MATCH — La recherche à deux fonctions qui surpasse VLOOKUP

Excel INDEX & MATCH — La recherche à deux fonctions qui surpasse VLOOKUP

INDEX et MATCH scindent une recherche en deux tâches : MATCH trouve la position (« quelle ligne ? »), INDEX renvoie la valeur à cette position (« qu'y a-t-il là ? »). Découpler la recherche de la récupération, c'est ce qui donne à INDEX/MATCH tout ce qui manque à VLOOKUP — il regarde à gauche aussi facilement qu'à droite, survit aux colonnes insérées et réalise de vraies recherches bidimensionnelles. Apprenez le motif, le piège de match_type, et quand il bat encore XLOOKUP.

Henry
Excel HLOOKUP & LOOKUP — Recherches horizontales et la fonction héritée à mettre à la retraite

Excel HLOOKUP & LOOKUP — Recherches horizontales et la fonction héritée à mettre à la retraite

HLOOKUP, c'est VLOOKUP pivoté de 90 degrés — il recherche dans la première LIGNE et lit vers le bas. LOOKUP est l'ancêtre de VLOOKUP, et son défaut fatal est de n'avoir aucune option de correspondance exacte : il approxime toujours et exige des données triées. Découvrez quand une disposition horizontale fait de HLOOKUP le bon choix, pourquoi la vieille astuce LOOKUP(2,1/…) traîne encore dans les feuilles anciennes, et pourquoi les deux cèdent surtout la place à XLOOKUP.

Henry
Fonctions AND et OR dans Excel — Combiner des conditions correctement (et pourquoi Excel n'évalue jamais en court-circuit)

Fonctions AND et OR dans Excel — Combiner des conditions correctement (et pourquoi Excel n'évalue jamais en court-circuit)

AND et OR ne décident rien — ils réduisent plusieurs tests VRAI/FAUX en un seul verdict qui alimente un IF, une règle ou un filtre. Découvrez pourquoi AND se loge dans le premier argument de IF, pourquoi un =AND(...) isolé n'affiche que le mot TRUE, pourquoi Excel évalue chaque argument (aucun court-circuit, d'où le #DIV/0!) et quand leur préférer des masques matriciels en +/*.

Henry
Fonctions NOT et XOR dans Excel — Inverser une condition, et la logique du « seul intrus » que presque tout le monde rate

Fonctions NOT et XOR dans Excel — Inverser une condition, et la logique du « seul intrus » que presque tout le monde rate

NOT inverse un seul verdict VRAI/FAUX ; XOR est le ou exclusif que AND et OR n'expriment pas. Découvrez pourquoi NOT prend exactement un argument (d'où NOT(AND(...))), quand NOT n'est qu'un <> déguisé, pourquoi la loi de De Morgan est son vrai superpouvoir, et la surprise de XOR : avec 3 entrées ou plus, il renvoie TRUE pour un nombre IMPAIR de TRUE, pas « exactement un ».

Henry
Fonctions IS dans Excel — ISNUMBER, ISTEXT, ISBLANK, ISERROR et ISNA (protéger une formule avant qu'elle casse)

Fonctions IS dans Excel — ISNUMBER, ISTEXT, ISBLANK, ISERROR et ISNA (protéger une formule avant qu'elle casse)

La famille IS inspecte une cellule et renvoie un verdict VRAI/FAUX — elle classe, elle ne transforme jamais. Découvrez pourquoi ISBLANK est plus strict que « paraît vide », pourquoi ISERROR cache de vrais bugs quand ISNA et IFNA sont plus sûrs, pourquoi IF(ISERROR(x),…,x) calcule x deux fois, et l'atout d'ISNUMBER : transformer SEARCH en un test de correspondance partielle bien net.

Henry
Fonction TEXTE d'Excel — Mettre un nombre en forme comme texte (et le piège qui l'empêche de s'additionner)

Fonction TEXTE d'Excel — Mettre un nombre en forme comme texte (et le piège qui l'empêche de s'additionner)

La fonction TEXTE transforme un nombre ou une date en une chaîne de texte mise en forme à l'aide d'un code de format — =TEXT(1234.5,"$#,##0.00") donne "$1 234,50". Découvrez le modèle mental (incruster une mise en forme dans une vraie chaîne vs le format d'affichage d'une cellule), le piège n°1 (le résultat est du texte, donc SOMME l'ignore), le cours accéléré des codes de format pour les nombres et les dates, les zéros de tête et les paramètres régionaux, et quand un format de cellule, CONCAT ou ARRONDI est le meilleur outil.

Henry
Excel CNUM et VALEURNOMBRE — Reconvertir du texte en nombres qui calculent

Excel CNUM et VALEURNOMBRE — Reconvertir du texte en nombres qui calculent

CNUM analyse une chaîne de texte qui ressemble à un nombre — "1 234,50" ou "9,00 $" — pour en faire un vrai nombre que vous pouvez additionner, trier et mettre en graphique. C'est l'inverse de TEXTE. Découvrez le modèle mental, la cause n°1 dans la vraie vie (des nombres stockés comme texte après un import ou un collage), pourquoi CNUM suit les paramètres régionaux de votre système et comment VALEURNOMBRE règle un "1.234,56" à l'européenne, les correctifs plus rapides sans formule (*1, double moins unaire, Convertir), et pourquoi Excel moderne convertit certains textes mais SOMME jamais.

Henry
Excel DATEVAL et TEMPSVAL — Sauver les dates et heures piégées en texte

Excel DATEVAL et TEMPSVAL — Sauver les dates et heures piégées en texte

Une date dans Excel est en réalité un numéro de série habillé d'un format de date ; une date qui arrive en texte est un imposteur qui refuse de se trier, se soustraire ou nourrir DATEDIF. DATEVALUE analyse une date-texte en son numéro de série et TIMEVALUE analyse une heure-texte en une fraction de jour. Découvrez le modèle mental, les symptômes des dates-texte, le piège de l'ambiguïté régionale avec 03/04/2026, comment combiner date + heure, quand DATEVALUE ne parvient pas à analyser une chaîne, et les alternatives DATE(GAUCHE,STXT,DROITE) et Convertir.

Henry
Fonction INDIRECT Excel — Transformer du texte en référence vivante (et pourquoi elle est volatile)

Fonction INDIRECT Excel — Transformer du texte en référence vivante (et pourquoi elle est volatile)

INDIRECT transforme une chaîne de texte comme "A1" ou "Sheet2!B3" en une référence de cellule vivante. Découvrez le modèle mental, le piège n°1 (le texte ne se met pas à jour tout seul : renommer une feuille casse chaque INDIRECT avec #REF!), pourquoi elle est volatile et invisible pour le traceur de dépendances d'Excel, le piège du #REF! sur classeur fermé, son seul usage imbattable — lire depuis une feuille nommée dans une cellule — et quand un Tableau, une référence 3D ou CHOISIR est le meilleur outil.

Henry
Fonction OFFSET (DECALER) Excel — Une référence qui se déplace (et quand INDEX vaut mieux)

Fonction OFFSET (DECALER) Excel — Une référence qui se déplace (et quand INDEX vaut mieux)

OFFSET renvoie une référence décalée d'un certain nombre de lignes et de colonnes depuis une ancre, éventuellement redimensionnée en un bloc entier. Découvrez le modèle mental, pourquoi elle renvoie une référence (pas une valeur) et peut donc alimenter SUM, le coût de la volatilité, l'astuce classique de la plage nommée dynamique et pourquoi un Tableau ou une plage de déversement la surpasse aujourd'hui, le piège du #REF! hors bord, et le choix clé : utiliser INDEX non volatile pour indexer dans une plage, et réserver OFFSET aux fenêtres réellement mobiles.

Henry
Fonction ADDRESS (ADRESSE) Excel — Construire l'adresse d'une cellule sous forme de texte (pas sa valeur)

Fonction ADDRESS (ADRESSE) Excel — Construire l'adresse d'une cellule sous forme de texte (pas sa valeur)

ADDRESS construit le texte d'une adresse de cellule — =ADDRESS(1,1) renvoie la chaîne "$A$1", pas ce que contient A1. Découvrez le modèle mental (c'est l'inverse du côté entrée d'INDIRECT), le malentendu n°1 selon lequel elle renvoie du texte et non une valeur, l'argument abs_num pour le verrouillage par $, pourquoi elle n'est PAS volatile contrairement à INDIRECT et OFFSET, ses vrais rôles — signaler où se trouve une valeur via MATCH et construire des références pour INDIRECT — et un avis honnête sur sa nature de niche dans Excel moderne.

Henry
Fonction SUMPRODUCT d'Excel — multiplier puis additionner, et les conditions que SUMIFS ne sait pas faire

Fonction SUMPRODUCT d'Excel — multiplier puis additionner, et les conditions que SUMIFS ne sait pas faire

SUMPRODUCT multiplie des plages élément par élément et additionne les résultats — une seule cellule, un produit scalaire. Découvrez le piège #VALUE! lié aux dimensions incompatibles, pourquoi on multiplie les tableaux booléens pour le ET et on les additionne pour le OU (jamais AND()/OR()), quand la double négation -- est nécessaire, et les calculs de total pondéré et de OU entre colonnes que SUMIFS ne sait toujours pas faire.

Henry
Fonction SUBTOTAL d'Excel — des totaux qui respectent votre filtre (et le piège 9 vs 109)

Fonction SUBTOTAL d'Excel — des totaux qui respectent votre filtre (et le piège 9 vs 109)

SUBTOTAL est un total qui tient compte du filtre : il ignore les lignes masquées par un filtre, si bien que le nombre au bas de votre liste se met à jour à mesure que vous filtrez. Découvrez le tableau des function_num, le piège 1–11 vs 101–111 (pourquoi masquer des lignes manuellement ne change pas votre total), pourquoi SUBTOTAL ignore les autres SUBTOTAL pour que les totaux généraux ne comptent jamais en double, et pourquoi il ne sait pas ignorer les erreurs — la tâche pour laquelle AGGREGATE a été conçu.

Henry
Fonction AGGREGATE d'Excel — le sur-ensemble de SUBTOTAL qui ignore aussi les erreurs

Fonction AGGREGATE d'Excel — le sur-ensemble de SUBTOTAL qui ignore aussi les erreurs

AGGREGATE, c'est SUBTOTAL avec deux améliorations : 19 fonctions au lieu de 11, et un argument options qui lui permet d'ignorer les valeurs d'erreur, les lignes masquées et les totaux imbriqués. Découvrez la grille function_num + options, son astuce la plus sous-exploitée — sommer une colonne qui contient des #N/A sans aucun nettoyage IFERROR — et les fonctions matricielles (LARGE, SMALL, PERCENTILE) qui réclament un argument k supplémentaire.

Henry
Excel FIND et SEARCH — Localiser du texte par contenu (FIND vs SEARCH, et le piège

Excel FIND et SEARCH — Localiser du texte par contenu (FIND vs SEARCH, et le piège

FIND et SEARCH renvoient la position d'une chaîne à l'intérieur d'une autre — le point d'ancrage que vous fournissez à MID et LEFT. Découvrez les deux vraies différences (FIND est sensible à la casse et sans caractères génériques ; SEARCH ignore la casse et accepte les génériques), pourquoi les deux renvoient #VALUE! en l'absence de correspondance, et l'astuce du test de présence ISNUMBER(SEARCH()).

Henry
Excel SUBSTITUTE et REPLACE — Remplacer par contenu vs remplacer par position

Excel SUBSTITUTE et REPLACE — Remplacer par contenu vs remplacer par position

SUBSTITUTE et REPLACE remplacent tous deux du texte, mais ils raisonnent différemment : SUBSTITUTE fait correspondre par contenu (remplacer chaque 'x', ou seulement le Nème), tandis que REPLACE travaille par position (écraser les caractères 5 à 9). Découvrez lequel utiliser, pourquoi SUBSTITUTE est sensible à la casse, et l'astuce de comptage LEN-moins-LEN.

Henry
Fonction ROUND d'Excel — ROUND, ROUNDUP et ROUNDDOWN (et pourquoi mettre en forme n'est pas arrondir)

Fonction ROUND d'Excel — ROUND, ROUNDUP et ROUNDDOWN (et pourquoi mettre en forme n'est pas arrondir)

ROUND modifie la valeur stockée selon un nombre de décimales ; la mise en forme d'une cellule ne change que son apparence. Découvrez pourquoi cet écart fait que les totaux de factures se décalent d'un centime, l'astuce de num_digits (positif, zéro, négatif), en quoi ROUNDUP et ROUNDDOWN diffèrent de ROUND, et pourquoi ils arrondissent selon la distance à zéro — et non vers le haut ou vers le bas.

Henry
Excel MROUND, CEILING et FLOOR — Arrondir au multiple le plus proche, pas à une décimale

Excel MROUND, CEILING et FLOOR — Arrondir au multiple le plus proche, pas à une décimale

MROUND, CEILING et FLOOR arrondissent au multiple le plus proche d'un nombre — 5 centimes, 15 minutes, un carton complet — et non à un nombre de décimales. Découvrez pourquoi le second argument est un multiple et non des chiffres, pourquoi l'ancien CEILING renvoie #NUM! sur les négatifs, pourquoi CEILING.MATH et FLOOR.MATH sont les choix modernes sûrs, et quand choisir chacun.

Henry
Excel INT, TRUNC et MOD — Supprimer la décimale et trouver le reste

Excel INT, TRUNC et MOD — Supprimer la décimale et trouver le reste

INT et TRUNC suppriment tous deux les décimales, mais INT arrondit vers moins l'infini tandis que TRUNC tronque simplement vers zéro — d'où leur divergence sur les nombres négatifs. MOD renvoie le reste, et dans Excel le reste prend le signe du diviseur, pas celui du nombre. Découvrez le piège du décalage d'une unité, la séparation des dates et des heures, et le motif zébré.

Henry
Fonctions IFS et SWITCH dans Excel — La logique à plusieurs branches sans la pyramide de IF imbriqués

Fonctions IFS et SWITCH dans Excel — La logique à plusieurs branches sans la pyramide de IF imbriqués

IFS vérifie une liste de conditions de haut en bas et renvoie la première qui correspond ; SWITCH compare une valeur à une liste de cas. Découvrez les deux pièges à l'origine de la plupart des bugs — IFS n'a pas de else intégré (un défaut oublié renvoie #N/A) et la première correspondance l'emporte, donc l'ordre compte — et quand préférer IFS, SWITCH ou une table de recherche.

Henry
Fonction SEQUENCE dans Excel — Générer un tableau vivant de nombres, dates et numéros de ligne

Fonction SEQUENCE dans Excel — Générer un tableau vivant de nombres, dates et numéros de ligne

SEQUENCE crée un tableau de nombres à partir de rien — c'est le moteur derrière les numéros de ligne dynamiques, les séries de dates et les grilles, pas un remplaçant de la poignée de recopie. Découvrez l'ordre des arguments (lignes, colonnes, début, pas), comment bâtir un calendrier vivant, pourquoi elle renvoie #SPILL! et quand elle remplace le glissement ou LIGNE().

Henry
Boucle While VBA dans Excel — boucler sans figer Excel

Boucle While VBA dans Excel — boucler sans figer Excel

Une boucle While VBA est une promesse qu'elle se terminera — et c'est vous qui la tenez. Apprenez les trois parties que toute boucle While exige, pourquoi Do While vaut mieux que While...Wend, et comment ne plus jamais figer Excel. Avec exemples à copier. Testé sur Excel 365, 2021, 2019.

Henry
Guide Complet des Zones Nommées dans Excel VBA : De Débutant à Expert

Guide Complet des Zones Nommées dans Excel VBA : De Débutant à Expert

Les zones nommées sont des outils clés dans Excel pour améliorer l'efficacité du travail et la lisibilité du code. Grâce à ce guide, vous avez acquis des compétences allant des bases aux applications avancées des zones nommées, incluant la création, la gestion, l'ajustement dynamique, la gestion des erreurs et des études de cas pratiques. En suivant les meilleures pratiques et les conseils d'optimisation des performances, vous pouvez construire des classeurs Excel plus efficaces et faciles à maintenir. Continuez à pratiquer et à explorer, et vous deviendrez un expert des zones nommées dans Excel VBA !

Rosa Rugosa