Créer une macro pour modifier des tableaux dans Excel peut être une tâche puissante pour automatiser des ajustements complexes ou répétitifs. Voici un guide pour écrire une macro qui modifie des tableaux Excel.
Voici un exemple de macro pour modifier un tableau nommé Table1
:
Sub ModifierTableau()
' Définir une variable pour le tableau
Dim tableau As ListObject
Dim ws As Worksheet
' Identifier la feuille contenant le tableau
Set ws = ThisWorkbook.Sheets("Feuil1")
' Identifier le tableau (changez "Table1" par le nom réel de votre tableau)
Set tableau = ws.ListObjects("Table1")
' Ajouter une nouvelle colonne au tableau
tableau.ListColumns.Add
tableau.ListColumns(tableau.ListColumns.Count).Name = "Nouvelle Colonne"
' Modifier une cellule spécifique (ligne 2, colonne 3 dans le tableau)
tableau.DataBodyRange(2, 3).Value = "Valeur modifiée"
' Appliquer un format à la première colonne
tableau.ListColumns(1).Range.Font.Bold = True
tableau.ListColumns(1).Range.Interior.Color = RGB(200, 230, 255)
MsgBox "Modifications terminées !"
End Sub
ModifierTableau
et cliquez sur Exécuter.Set tableau = ws.ListObjects("Table1")
.(2, 3)
pour cibler d’autres cellules.On Error Resume Next
pour gérer les erreurs si le tableau n’existe pas.Exemple d’ajout de gestion des erreurs :
Sub ModifierTableauAvecErreurs()
On Error GoTo GestionErreur
' Code de modification
Call ModifierTableau
Exit Sub
GestionErreur:
MsgBox "Une erreur s'est produite : " & Err.Description
End Sub
Ce guide peut être adapté à des besoins spécifiques en fonction des tâches à automatiser.
Pour exécuter une macro automatiquement à l’ouverture d’un fichier Excel ou lorsqu’un événement spécifique se produit, voici les étapes :
Pour exécuter une macro dès que le fichier Excel est ouvert, utilisez l’événement Workbook_Open
.
Alt + F11
.Private Sub Workbook_Open()
' Appeler la macro ModifierTableau
Call ModifierTableau
End Sub
Pour exécuter une macro lorsqu’une modification est effectuée dans une feuille spécifique, utilisez l’événement Worksheet_Change
.
Alt + F11
).Private Sub Worksheet_Change(ByVal Target As Range)
' Vérifier si la modification concerne une colonne ou cellule spécifique
If Not Intersect(Target, Me.Range("A1:A10")) Is Nothing Then
' Appeler la macro ModifierTableau
Call ModifierTableau
End If
End Sub
A1:A10
) pour déclencher la macro.Pour exécuter une macro automatiquement à un moment donné, utilisez Application.OnTime
.
Sub PlanifierMacro()
' Planifier l’exécution de ModifierTableau dans 10 secondes
Application.OnTime Now + TimeValue("00:00:10"), "ModifierTableau"
End Sub
PlanifierMacro
à la fin de ModifierTableau
.Sub ModifierTableau()
' Votre code ici
MsgBox "Macro exécutée automatiquement !"
' Planifier la prochaine exécution
Call PlanifierMacro
End Sub
Voici d’autres événements où une macro peut être déclenchée :
Worksheet_SelectionChange
Worksheet_PivotTableUpdate
Workbook_BeforeClose
Par exemple, pour exécuter une macro à la fermeture :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call ModifierTableau
End Sub
Pour une startup comme LightHeritage, plusieurs principes de physique issus de l’optique géométrique, ondulatoire, et de la photonique peuvent être exploités pour créer des expériences immersives et innovantes. Voici une liste des principes physiques clés :
Ces principes servent à concevoir et contrôler les trajets lumineux dans les dispositifs holographiques ou les projections.
Ces principes sont cruciaux pour créer des hologrammes et des projections lumineuses spectaculaires.
Cette discipline combine optique et électronique pour créer des dispositifs avancés comme des lasers et des systèmes holographiques.
Des effets visuels captivants peuvent être créés en manipulant les spectres lumineux.
Sécuriser les macros Excel est essentiel pour protéger votre code et les données qu’il manipule, tout en prévenant tout accès non autorisé ou modifications accidentelles. Voici différentes étapes et techniques pour sécuriser vos macros dans Excel.
L’ajout d’un mot de passe empêche les utilisateurs d’accéder ou de modifier le code source des macros.
Alt + F11
.Excel dispose de paramètres de sécurité qui permettent de contrôler l’exécution des macros.
Vous pouvez créer des restrictions au sein de votre code VBA pour autoriser seulement certains utilisateurs.
Sub MacroSécurisée()
Dim userName As String
userName = Environ("USERNAME")
' Vérifiez si l'utilisateur est autorisé
If userName <> "NomUtilisateurAutorisé" Then
MsgBox "Vous n'êtes pas autorisé à exécuter cette macro.", vbCritical
Exit Sub
End If
' Code principal de la macro
MsgBox "Bienvenue, " & userName & " !"
End Sub
Protégez les données et formules dans les feuilles Excel en complément des macros :
Vous pouvez rendre une macro invisible dans le menu “Macros”.
Exemple :
Private Sub _MacroMasquée()
MsgBox "Cette macro est masquée."
End Sub
Ainsi, la macro n’apparaîtra pas dans la liste des macros.
Configurez votre fichier pour qu’il soit ouvert en lecture seule par défaut :
Tracez l’utilisation des macros pour surveiller toute activité non autorisée.
Sub MacroAvecJournal()
Dim logFile As String
Dim fileNumber As Integer
' Chemin du fichier journal
logFile = ThisWorkbook.Path & "\JournalMacro.txt"
fileNumber = FreeFile
' Écrire l'activité dans le journal
Open logFile For Append As #fileNumber
Print #fileNumber, "Macro exécutée par " & Environ("USERNAME") & " à " & Now
Close #fileNumber
MsgBox "Journal mis à jour."
End Sub
Protégez les données du fichier entier avec un mot de passe :
Une entreprise moyenne gère ses factures mensuelles dans un fichier Excel. Ce fichier contient :
Table_Factures
.Cette macro parcourt le tableau des factures et met à jour automatiquement le statut (Payée/Non payée) en fonction d’une colonne de paiement.
Sub MettreAJourStatutFactures()
Dim ws As Worksheet
Dim tableau As ListObject
Dim i As Long
Dim dateLimite As Date
' Référencer la feuille et le tableau
Set ws = ThisWorkbook.Sheets("Factures")
Set tableau = ws.ListObjects("Table_Factures")
' Date limite pour les factures impayées
dateLimite = DateAdd("d", -30, Date)
' Parcourir chaque ligne du tableau
For i = 1 To tableau.ListRows.Count
With tableau.ListRows(i)
' Vérifier si la facture est payée
If .Range(4).Value = "Payée" Then
.Range(5).Value = "OK" ' Statut OK
ElseIf .Range(2).Value < dateLimite Then
.Range(5).Value = "En retard"
Else
.Range(5).Value = "En attente"
End If
End With
Next i
MsgBox "Mise à jour terminée."
End Sub
Cette macro envoie une alerte pour les factures en retard.
Sub AlerteFacturesEnRetard()
Dim ws As Worksheet
Dim tableau As ListObject
Dim i As Long
Dim message As String
Dim enRetard As Boolean
' Référencer la feuille et le tableau
Set ws = ThisWorkbook.Sheets("Factures")
Set tableau = ws.ListObjects("Table_Factures")
message = "Les factures suivantes sont en retard :" & vbCrLf
enRetard = False
' Parcourir chaque ligne pour trouver les factures en retard
For i = 1 To tableau.ListRows.Count
If tableau.ListRows(i).Range(5).Value = "En retard" Then
message = message & "- Facture " & tableau.ListRows(i).Range(1).Value & vbCrLf
enRetard = True
End If
Next i
' Afficher le message ou une confirmation
If enRetard Then
MsgBox message, vbExclamation, "Alerte : Factures en retard"
Else
MsgBox "Aucune facture en retard.", vbInformation
End If
End Sub
Cette macro génère un PDF pour les factures payées.
Sub GenererFacturesPayeesPDF()
Dim ws As Worksheet
Dim tableau As ListObject
Dim i As Long
Dim savePath As String
' Référencer la feuille et le tableau
Set ws = ThisWorkbook.Sheets("Factures")
Set tableau = ws.ListObjects("Table_Factures")
' Définir le chemin de sauvegarde
savePath = ThisWorkbook.Path & "\FacturesPayees.pdf"
' Appliquer un filtre pour sélectionner uniquement les factures payées
tableau.Range.AutoFilter Field:=4, Criteria1:="Payée"
' Exporter la plage filtrée en PDF
tableau.DataBodyRange.ExportAsFixedFormat Type:=xlTypePDF, Filename:=savePath, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
' Désactiver le filtre
tableau.AutoFilter.ShowAllData
MsgBox "Le PDF des factures payées a été généré.", vbInformation
End Sub
MettreAJourStatutFactures
:If Environ("USERNAME") <> "AdminUser" Then
MsgBox "Vous n'êtes pas autorisé à exécuter cette macro.", vbCritical
Exit Sub
End If
Automatisez ces macros à l’ouverture ou à la fermeture du fichier :
Private Sub Workbook_Open()
Call MettreAJourStatutFactures
End Sub
Le Plan d’action HSE est un document structurant qui recense, hiérarchise et planifie les mesures…
Il s’agit d’une obligation légale… aux fondements opérationnels insurpassables Dans l’univers exigeant de BTP, la…
Une étape charnière dans la vie d’un chantier La réception des travaux constitue l’un des…
Télécharger le Canevas de Stratégie de Réduction des Émissions Carbone ⬇️ 1. Définition du Bilan…
Un document technique, une exigence réglementaire, un révélateur de maturité organisationnelle Le secteur du Bâtiment…
Dans cet article, nous vous proposons une checklist complète et pratique pour préparer un entretien…
This website uses cookies.