Mini utilitaire de saisie en VBA

Bon­jour à tous,

Pour con­stru­ire un pro­to­type de saisie des­tiné à un usage lim­ité, voici une petite procé­dure qui peut ren­dre de grands ser­vices. Cet exem­ple ne per­met que la saisie, mais pas la mod­i­fi­ca­tion ou la sup­pres­sion de données.

Cet exem­ple sert à démon­tr­er l’u­til­i­sa­tion de cer­taines fonc­tion­nal­ités du VBA en inter­ac­tion avec Excel. 

On notera :

  • Util­i­sa­tion d’une vari­able pour iden­ti­fi­er la nou­velle ligne à saisir.
  • Util­i­sa­tion de noms de plages défi­nis dans Excel pour ren­dre l’ap­pli­ca­tion robuste. Par exem­ple, l’a­jout, la sup­pres­sion, la mod­i­fi­ca­tion ou le déplace­ment de lignes ou de colonnes est pos­si­ble dans une large mesure. A l’in­verse, si vous aviez util­isé des références sta­tiques du style Range(“D2”), celles-ci ne sont pas du tout robustes en VBA-Excel.

Voici une petite vidéo qui démon­tre la con­struc­tion du fichier :

On peut aller une étape plus loin en créant une boucle qui va par­courir toutes les colonnes. Dans le fichi­er joint (mais pas dans la vidéo), j’ai aus­si géré le fait de met­tre la table de don­nées dans une autre feuille :

De plus, en trans­for­mant la plage en tableau, l’a­jout des lignes étend automa­tique­ment le tableau vers le bas.

Pour ajouter un nou­veau champ, il faut sim­ple­ment définir deux noms et mod­i­fi­er le code VBA en ajoutant le nom du champ dans l’array:

  • Saisie_NomNouveauChamp
  • Col_ Nom­Nou­veauChamp
  • arr­Colonnes = Array(“Nom”, “Prenom”, “Ville”, “Code­Postal”, ” Nom­Nou­veauChamp”)

Bonne con­tin­u­a­tion.

Excel VBA — Rapatrier les informations d’un fichier (chemin/emplacement et nom)

Bon­jour à tous,

Voici une amélio­ra­tion d’un ancien post.

Le but est de rap­a­tri­er les infor­ma­tions d’un fichi­er que l’on sélec­tionne via une boîte de dialogue. 

Cliquez ici pour télécharg­er le fichi­er Excel.

Ce code est ensuite très pra­tique pour pou­voir ensuite effectuer des traite­ments sur un fichi­er sélectionné.

Voici le code : 

Option Explicit
Sub choix_CheminEtFichiers()
'Cette macro permet de mettre dans la plage nommee les informations du fichier selectionne
    'note : on aurait pu tout faire en une seule fois sans variables, mais en ayant
    'des variables, cela permet de facilement continuer le code par la suite.
    Dim strFichier As String
    Dim strChemin As String
    Dim strCheminEtFichier As String
    'on ouvre la boite de dialogue pour recuperer les informations du fichier selectionne
    With Application.FileDialog(msoFileDialogFilePicker)
        .Show
        On Error Resume Next
        strChemin = .SelectedItems.Parent.InitialFileName
        strCheminEtFichier = .SelectedItems.Item(1)
        'note : il existe de nombreuses autres solutions pour recuperer le nom du fichier
        strFichier = Right(strCheminEtFichier, Len(strCheminEtFichier) - InStrRev(strCheminEtFichier, "\"))
        On Error GoTo 0
    End With
    'on rapatrie les informations dans la feuille excel
    If strCheminEtFichier <> "" Then
        Range("Nom_du_Fichier").Value = strFichier
        Range("CheminFichier").Value = strChemin
        Range("Nom_et_Chemin_du_Fichier").Value = strCheminEtFichier
    End If
    'on ajuste la colonne contenant le resultat
    Columns(Range("Nom_du_Fichier").Column).EntireColumn.AutoFit
End Sub

Bonne con­tin­u­a­tion.

Gae­tan Mourmant

Copier un fichier vers plusieurs répertoires

Dans le cadre du déploiement d’un fichi­er pour de mul­ti­ples util­isa­teurs, il est par­fois pra­tique de pou­voir copi­er celui-ci à plusieurs endroits pour que tout le monde ait une copie à jour. Évidem­ment, ca serait mieux si le fichi­er était directe­ment mul­ti-util­isa­teur, mais par­fois on n’a pas le choix ! 

Voici donc un petit fichi­er qui automa­tise ce proces­sus : CopierMultiplesFichiers.XLSM

L’essen­tiel du code est : 


Sub CopierFichier()
Dim rgeCell As Range
For Each rgeCell In Range("TableauColEmplacementFinal")
FileCopy Range("CheminCompletFichierSource"), rgeCell.Value
Next
End Sub

On a aus­si nom­mé les plages suivantes :

Et on utilise aus­si quelques for­mules pour recréer le chemin com­plet de chaque fichier.
DROITE : retourne les car­ac­tères à droite de la plage
& : per­met de con­catén­er, c’est-a-dire de com­bin­er deux chaînes de car­ac­tères ensemble.

Vous pou­vez aus­si not­er que j’u­tilise une colonne inter­mé­di­aire pour entr­er manuelle­ment des don­nées, tout en con­ser­vant une for­mule iden­tique à la colonne C. 

En espérant que ce petit fichi­er puisse vous ren­dre pleins de services !

A bien­tôt.

Gae­tan