Formulaire Excel automatisé

 Formulaire Excel Interactif avec Choix de l'Onglet Automatisé



🎯 Dans ce tutoriel Excel, découvrez comment créer un formulaire interactif pour automatiser l'enregistrement de vos données sur un ou sur tous les onglets en une seule fois.

⌚ Ce formulaire est un outil puissant qui vous fera gagner du temps, vous évitant de naviguer constamment entre tous vos onglets.

✅ De plus, vous spouvez adapter ce formulaire dynamique selon vos besoins.

👍 Mais ce n'est pas tout, en un seul clic, vous pouvez enregistrer automatiquement un onglet dans un nouveau fichier Excel, ce qui est bien utile lorsque vous avez besoin de partager des données spécifiques, par exemple via le Cloud ou par Email.

➡️ Et enfin, vous avez la possibilité d'ajouter automatiquement un nouvel onglet à votre fichier Excel.



Voir la vidéo pour suivre les différentes étapes :



Formulaire Excel Interactif Avec Choix de l'Onglet Automatisé



Pour vous entraîner et suivre les étapes de ce tutoriel,

➡️ Télécharger le fichier Excel utilisé dans la vidéo.
👇 
Après avoir ouvert le lien :
  • Vous cliquez sur "Fichier",
  • puis sur "Enregistrer sous", ou sur "Créer une copie",
  • et sur "Télécharger une copie".



Un autre tutoriel qui pourrait vous intéresser :




📌↪️→ Code VBA à utiliser pour filtrer et copier vos données automatiquement sur un nouvel onglet :


Sub EnregistrerSurFeuille(ws As Worksheet)
    Dim derniereLigne As Long
    derniereLigne = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1
    
    Dim i As Integer
    For i = 0 To 6 ' Copier les cellules de E3 à E9
        With ws.Cells(derniereLigne, i + 1)
            .Value = Cells(3 + i, "E").Value
            .Font.Color = Cells(3 + i, "E").Font.Color
            .Borders.LineStyle = Cells(3 + i, "E").Borders.LineStyle
            .Borders.Color = RGB(191, 191, 191)
            .HorizontalAlignment = Cells(3 + i, "E").HorizontalAlignment
            .VerticalAlignment = Cells(3 + i, "E").VerticalAlignment
            .WrapText = True
        End With
    Next i
End Sub
Sub EnregistrerDonnees()
    Dim ws As Worksheet
    Dim nomDestinataire As String
    nomDestinataire = Range("E9").Value ' Le nom du destinataire est dans la cellule E9

    If nomDestinataire = "Tous" Then
        For Each ws In ThisWorkbook.Sheets
            If ws.Index <> 1 Then
                EnregistrerSurFeuille ws
            End If
        Next ws
    Else
        ' Vérifier si l'onglet existe
        On Error Resume Next
        Set ws = ThisWorkbook.Sheets(nomDestinataire)
        On Error GoTo 0

        ' Si l'onglet n'existe pas, afficher une boîte de dialogue et quitter la macro
        If ws Is Nothing Then
            MsgBox "L'onglet " & nomDestinataire & " n'existe pas."
            Exit Sub
        End If

        EnregistrerSurFeuille ws
    End If

    MsgBox "Les données ont été enregistrées."
    
    AjusterHauteurLignes
End Sub
Sub AjusterHauteurLignes()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Sheets
        If ws.Index <> 1 Then
            ws.Rows.AutoFit
        End If
    Next ws
End Sub
Sub EffacerDonnees()
    Range("E3:E9").ClearContents ' Effacer les cellules de E3 à E9
End Sub
Sub EnregistrerFeuilleDansNouveauFichier()
    Dim ws As Worksheet
    Dim nouveauClasseur As Workbook
    Dim cheminFichier As Variant
    Dim nomFeuille As String
    
    ' Demander à l'utilisateur de saisir le nom de la feuille à copier
    nomFeuille = InputBox("Entrez le nom de la feuille à copier :", "Nom de la feuille")
    
    If nomFeuille = "" Then
        MsgBox "Opération annulée.", vbInformation
        Exit Sub
    End If
    
    On Error Resume Next
    Set ws = ThisWorkbook.Sheets(nomFeuille)
    On Error GoTo 0
    
    If ws Is Nothing Then
        MsgBox "La feuille " & nomFeuille & " n'existe pas.", vbExclamation
        Exit Sub
    End If
    
    Set nouveauClasseur = Workbooks.Add
    
    ws.Copy Before:=nouveauClasseur.Sheets(1)
    
    Application.DisplayAlerts = False
    Do While nouveauClasseur.Sheets.Count > 1
        nouveauClasseur.Sheets(nouveauClasseur.Sheets.Count).Delete
    Loop
    Application.DisplayAlerts = True
    
    cheminFichier = Application.GetSaveAsFilename(FileFilter:="Excel Files (*.xlsx), *.xlsx")
    
    If VarType(cheminFichier) = vbBoolean And cheminFichier = False Then
        MsgBox "Opération annulée. Ce fichier sera fermé sans être enregistré.", vbInformation
        nouveauClasseur.Close False
        Exit Sub
    End If
    
    nouveauClasseur.SaveAs cheminFichier, FileFormat:=xlOpenXMLWorkbook
    
    MsgBox "Le fichier a été enregistré.", vbInformation
End Sub
Sub AjouterOnglet()
    Dim dernierOnglet As Worksheet
    Dim nouveauOnglet As Worksheet
    Dim dernierIndex As Integer
    Dim nomOnglet As String
    Dim col As Range
    
    nomOnglet = InputBox("Entrez le nom du nouvel onglet :", "Ajouter Onglet")
    
    If nomOnglet = "" Then
        MsgBox "Opération annulée. Aucun nom d'onglet n'a été saisi.", vbExclamation
        Exit Sub
    End If
    
    On Error Resume Next
    Set dernierOnglet = ThisWorkbook.Sheets(nomOnglet)
    On Error GoTo 0
    If Not dernierOnglet Is Nothing Then
        MsgBox "Un onglet avec ce nom existe déjà. Veuillez choisir un nom différent.", vbExclamation
        Exit Sub
    End If
    
    dernierIndex = ThisWorkbook.Sheets.Count
    Set dernierOnglet = ThisWorkbook.Sheets(dernierIndex)
    
    Set nouveauOnglet = ThisWorkbook.Sheets.Add(After:=dernierOnglet)
    
    dernierOnglet.Rows(1).Copy
    
    nouveauOnglet.Rows(1).PasteSpecial Paste:=xlPasteAll
    
    For Each col In dernierOnglet.UsedRange.Columns
        nouveauOnglet.Columns(col.Column).ColumnWidth = col.ColumnWidth
    Next col
    
    nouveauOnglet.Rows("2:" & Rows.Count).ClearContents
    
    nouveauOnglet.Name = nomOnglet
    
    ' Ajuster la hauteur des lignes pour les en-têtes
    nouveauOnglet.Rows(1).AutoFit
    
    nouveauOnglet.Cells(1, 1).Select
    
    MsgBox "Un nouvel onglet nommé '" & nomOnglet & "' a été ajouté avec succès !", vbInformation
End Sub
















Posts les plus consultés de ce blog

Suivi des stocks et inventaire avec alerte

Cases à cocher interactives sur Excel

Listes déroulantes multi-sélections