------------------------------------------------------------------------------------- / _ \ \_\(_)/_/ _//"\\_ JOHLEM.net / \ https://johlem.net/V1/topics/cheatsheet.php ------------------------------------------------------------------------------------- --- CHEATSHEET_EXCEL =================== Extension Description .xls legacy Excel file .xlt legacy Excel file template .xlm legacy Excel file with macros Extension Description .xlsx OOXML Excel file .xlst OOXML Excel file template .xlsm OOXML Excel file with macros CONSTANTE ET VARIABLE----------------------------------------------------------- Dim nomdelavariable as Typedelavariable Const nomdelaconstante as Typedelaconstante exemple: Dim nom as String Dim age as Integerr, compteur as Bytem dteJour as Date Const reference as Integer Les Type: Byte Boolean Integer Long Currency Single Double Date String Variant Object CONDITIONS--------------------------------------------------------------------- 3 elements necessaire pour appliquer une condition 1 - une variable ou calcul 2 - operateur de comparaison (=, <, >, =>, <=, <>) 3 - variable ou calcul ou valeur exemple 1: IF condition Then action action .. End If EXPLICATION condition remplit, les actions s'executent sinon le programme va directement a End If exemple 2: If condition Then action action .. Else action action .. End If EXPLICATION: si la condition est remplit, j'execute les actions sinon j'execute l'autre actions dans tout les cas, je vais a End If apres. LES SELECTIONS----------------------------------------------------------------------- #selectionner une feuille: Sheets("nom de la feuille").select #selection dune cellule simple: Range("cellule").select #selection cellule et cellule: Range("cellule,cellule")select #selection plage de cellule (cellules jusqu'a une autre cellules): Range("celluleDebut:celluledeFin")select #selection cellule simple: Cells(ligne,colonne).select #selection dune cellule simple par rapport a la cellule active ActiveCell.offset(ligne,colonne).select LES BOUCLES----------------------------------------------------------------------- FOR variable = valeur de depart TO valeur de fin action action .. NEXT variable exemple: FOR i = 1 TO 5 action action NEXT i explication: c'est une boucle FOR NEXT utilisation: lorsque l'on sait combien de fois on doit faire cette boucle -- FOR variable = valeur de depart TO valeur de fin STEP pas action action .. NEXT variable exemple: FOR i = 1 TO 10 STEP 2 action action .. NEXT variable explication: utilisation: lorsque l'on sait combien de fois on doit faire cette boucle et de combien de pas. -- FOR variable = valeur de depart TO valeur de fin action IF condition THEN EXIT FOR .. NEXT variable explication: ici la boucle va s'executer jusqu'a ce que la IF condition THEN EXIT FOR soit rempli et sort pour aller a END IF utilisation: -- DO action action .. LOOP WHILE condition explication: utilisation: si on ne sait pas par avance combien de fois on doit faire la boucle la condition est evaluer a la fin, donc la boucle s'executera au moins une fois. DO action IF condition THEN EXIT DO .. LOOP WHILE condition explication: WHILE condition action action .. WEND explication: explication: utilisation: si on ne sait pas par avance combien de fois on doit faire la boucle la condition est evaluer au debut, donc les actions seront effectuer QUE si la condition est remplis. --------------------------------------------------------------------------- ------CHECK IF A CELL IS EMPTY OR Not-------------------------- (source: https://www.educba.com/vba-isempty/) Sub Sample2() Dim cell As Range Dim bIsEmpty As Boolean bIsEmpty = False For Each cell In Range("B1:D7") If IsEmpty(cell) = True Then bIsEmpty = True Exit For End If Next cell If bIsEmpty = True Then MsgBox "empty cells" Else MsgBox "cells have values!" End If End Sub --------------------------------------------------------------------------- -----FVBA : Copier colonne sauf première ligne------------------------- Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row).Copy ###FComment exporter sur EXCEL la liste de fichiers d'un répertoire sous XP ? ecrit la liste des fichier present dans le repertoire D:\TMP\Folder dans la feuille 1 d'un fichier excel Sub Test_Liste_Fichiers() Dim Dossier As String, Fichier As String Dim i As Integer Dossier = "D:\TMP\Folder" Fichier = Dir(Dossier) Do While Fichier <> "" i = i + 1 Sheets("Feuil1").Range("A") & i) = fichiers Fichier = Dir Loop End Sub --------------------------------------------------------------------------- ###FComment convertir des CSV en fichier Excel en masse (tous les fichiers d’un répertoire) avec VBA (source: https://www.excelformation.fr/conversion-csv-en-masse-vba-excel.html) ###Filtre sur plusieurs colonnes --------------------------------------------------------------------------- (source: https://codes-sources.commentcamarche.net/forum/affich-1625400-filtre-sur-plusieurs-colonnes-vba-excel-2010) Private Sub cmdNom_Click() Recherche.Hide ' pour effectuer une recherche avec un nom où prénom Dim Nom As String Dim Ligne As Long Dim ColNom As Long Dim bFound As Boolean Dim oRange1 As Range Dim oRange2 As Range Nom = InputBox("Saisissez un nom", "Recherche par Nom :", "Tapez votre recherche") If Nom = "" Then Exit Sub ' au cas où ColNom = 7 ' le numéro de la colonne Nom où Prénom du tableau Ligne = 4 ' numéro de la premiere ligne à lire ' boucle tant que la cellule Nom comporte quelque chose For Each oRange1 In Range(Range("G7"), Range("G7").End(xlDown)) bFound = False ' par défaut, pas encore trouvé For Each oRange2 In Range(oRange1, oRange1.Offset(0, 100)) If InStr(1, oRange2.Text, Nom, vbTextCompare) <> 0 Then #faire la recherche sur les 30 colonnes à droite de celle du début. ' On a trouvé bFound = True Exit For End If Next oRange2 If Not bFound Then Rows(oRange1).Hidden = True Next oRange1 End Sub ------------------------------------------------------------------------------------------------------------ ###Using VBA to autofilter Multiple columns, with values from different sheet------------------------------------------------------------------- Sub FilterOnCellValue() With Sheets("Dump").Range("A1:Z10000") .AutoFilter Field:=9, Criteria1:=Sheets("ControlPlanning").Range("C1").Value .AutoFilter Field:=23, Criteria1:=Sheets("ControlPlanning").Range("C4").Value End With End Sub ----------------------------------------------------------------------------------------------------------------------------------------------