13 liens privés
10 conseils pour réduire les émissions de particules fines de votre foyer, tout en économisant du combustible – bûches ou granulés.
Dim DebutExecutionMacro As Date
DebutExecutionMacro = Now
MsgBox "L'onglet Synthèse du fichier " + NomFichierCible + " est (re)créé." + vbLf + vbLf + _
"Temps d'exécution : " & Format(Now - DebutExecutionMacro, "hh:mm:ss")
Pour un répertoire /
Dim RepertoireExiste As Boolean
If Len(Dir(Repertoire, vbDirectory)) > 0 Then
RepertoireExiste = True
Else
RepertoireExiste = False
MsgBox "Le répertoire n'existe pas pour ce RUN." & vbLf & Repertoire, vbExclamation + vbOKOnly
Exit Function
End If
Ne pas oublier l'attribut vbDirectory
. C'est grâce à lui que la fonction Dir()
sait qu'on est sur un répertoire.
Pour un fichier :
Dim FichierExiste As Boolean
If Len(Dir(Repertoire & ModeleNomFichier)) > 0 Then
FichierExiste = True
End If
Alternatives, en utilisant la référence Microsoft Scripting Runtime
sous Excel
Dim FS As Scripting.FileSystemObject
Set FS = New Scripting.FileSystemObject
If Not FS.FolderExists(Repertoire) Then
MsgBox "Le répertoire n'existe pas" + vbCrLf + Repertoire, vbCritical, "Répertoire inexistant"
Exit Function
End If
Pour un fichier, utiliser FS.FileExists(Repertoire + "\" + Fichier)
.
Worksheets("Synthèse").Range("A1", Cells.SpecialCells(xlCellTypeLastCell)).EntireColumn.AutoFit
Ca permet d'accélérer le temps de traitement des macros, sans faire clignoter l'écran, ni avoir besoin d'interagir avec l'utilisateur pour confirmer manuellement les actions du code VBA (ex. : demande de confirmation pour la fermeture d'un classeur sans enregistrement ; demande de confirmation pour écraser un fichier à l'enregistrement ; demande confirmation pour supprimer des données ; etc.).
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Ne pas oublier de repasser les valeur à True
en fin de traitement, sinon l'affichage restera figé.
Workbooks.OpenText Repertoire & "\" & FichierCSV, xlWindows, 1, xlDelimited, , , , True, , , , , , , , , , True
Le 2nd True
signifie que le séparateur utilisé est un point-virgule.
Alternative :
Workbooks.Open Filename:=CheminFichierSource & NomFichierSource
Range(Cells(1, 1), Cells.SpecialCells(xlCellTypeLastCell)).Copy
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, semicolon:=True
Windows est perclus de logiciels espions. Comment bien régler les paramètres de télémétrie et de confidentialité avant de le déployer.
En théorie, la combinaison de touches ctrl+fin positionne le focus sur la cellule la plus en bas à droite d'une feuille de calcul.
En pratique, cette combinaison de touches sélectionne la cellule sans tenir compte des suppressions de contenu. Il en résulte que si :
- ma dernière cellule est en C4
- je saisis quelque chose en E7
- la combinaison ctrl+fin m'envoie en E7
- je supprime la cellule E7
- la combinaison ctrl+fin m'envoie en E7
- je me positionne sur A1 puis enregistre le classeur
- la combinaison ctrl+fin m'envoie maintenant en C4
Le code VBA correspondant à la combinaison de touches ctrl+fin est Cells.SpecialCells(xlCellTypeLastCell)
.
Pour trouver la dernière ligne aillant eu un saisie, le code VBA correspondant est :
Cells.SpecialCells(xlCellTypeLastCell).Row
Le code suivant permet de trouver la dernière ligne non vide pour une colonne donnée (ici la colonne F).
Cells(Rows.Count, "F").End(xlUp).Row
Ah très bien, à retenir quand vous voyez que l'encodage n'est pas bon (je copie-colle):
« - Si dans votre page web vos accents ont la forme de "�", c'est que le texte est encodé en ISO et que le navigateur l'affiche en UTF-8.
- Si dans votre page web vos accents ont la forme de "é", "î" ou "Ã", c'est que le texte est encodé en UTF-8 et que votre navigateur l'affiche en ISO.
- Si dans votre page web vos accents ont la forme de "", c'est que généralement le texte est encodé en WINDOWS-1252 et que le navigateur l'affiche en UTF-8. »
La locution verbale « être Gros-Jean comme devant » est quelque peu désuète mais vaut le détour : elle signifie éprouver une désillusion ou encore, pour être plus précis, selon la définition du CNRTL : « avoir conçu de grandes espérances et se retrouver dans la même situation qu’auparavant. »
Pour programmer la mise en pause de l'exécution d'une macro, il suffit de saisir l'instruction Stop
à l'endroit voulu dans le code.
L'Académie française rappelle, dans sa rubrique Dire, ne pas dire, que la locution « tout à fait » est de plus en plus utilisée, de manière erronée, en tant que synonyme de « oui ». Or, la définition de « tout à fait » est « entièrement ; absolument » (à ne pas confondre avec « assurément »).
Plein de petits comics explicatifs sur plein de points techniques de Linux. Très instructif !