Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 VBA création d'interface

Yazeubi

XLDnaute Junior
Bonjour à tous, j'espère que tout le monde va bien.

J'ai besoin de vous, pour effectuer une macro.
Je souhaite créer une interface qui fera apparaître différente données, et qui remplira automatiquement mon tableau Excel avec les données récupéré.

Dès lors qu'on appui sur un bouton;
Texte qui apparaît: "Combien de pièces souhaitez vous contrôler ?"
*Case à cocher -1-
*Case à cocher -2-
*Case à cocher -3-
*Case à cocher -4-
*Case à cocher -5-

Le choix de la case correspond au nombre de contrôle a effectuer et donc au nombre de colonne a crée dans mon tableau Excel.
Si l'on choisi la case à cocher 4 sur l'interface alors une macro sélectionne automatiquement les 4 dernières colonnes soit dans l'exemple ici présent(dans l'Excel ci-dessous) les colonnes "K","L","M","N". On les copies sur les 4 colonnes d'à côté soit "O","P","Q","R" et on vide le contenue que le contrôleurs remplira lui même. On laisse la mise en forme on va juste vider les données.

Dans l'interface d'autre demande apparaissent tels que:

-Date du jour(Date de contrôle): Ecrite automatiquement ou manuellement si ce n'est pas possible
-Date de livraison: "Date à écrire"
-Nom du contrôleur : "Texte à écrire"
-Nom du fournisseur : "Texte à écrire"
-Désignation RQPP: "Texte à écrire"
-Quantité livré: "Texte à écrire"
-Quantité contrôlé: "Texte à écrire"

Lorsque j'écris "Texte à écrire" cela signifie que l'opérateur doit le remplir manuellement.


Merci d'avance,

Cordialement, Yazeubi
 

Pièces jointes

  • Mission optimisation Excel.xlsm
    49.3 KB · Affichages: 8
Dernière édition:
Solution
Bonjour Yazeubi,
Un essai en PJ avec :
VB:
Public Nombre% ' Nombre de colonnes à dupliquer ( valeur fournie par userform )
Sub Dupliquer()
    Application.ScreenUpdating = False
    Combien.Show                                            ' Affichage userform
    If Nombre = 0 Then Exit Sub                             ' Si pas de duplication demandée, on sort.
    ColRef = 10                                             ' Colonne de référence de départ pour la copie, colonne J
    DL = [G65500].End(xlUp).Row                             ' Dernière ligne utilisée
    PC = 1 + Cells(2, Columns.Count).End(xlToLeft).Column   ' Première colonne non utilisée
    Range(Cells(1, ColRef), Cells(DL, ColRef + Nombre - 1)).Select
    Selection.Copy...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Yazeubi,
Un essai en PJ avec :
VB:
Public Nombre% ' Nombre de colonnes à dupliquer ( valeur fournie par userform )
Sub Dupliquer()
    Application.ScreenUpdating = False
    Combien.Show                                            ' Affichage userform
    If Nombre = 0 Then Exit Sub                             ' Si pas de duplication demandée, on sort.
    ColRef = 10                                             ' Colonne de référence de départ pour la copie, colonne J
    DL = [G65500].End(xlUp).Row                             ' Dernière ligne utilisée
    PC = 1 + Cells(2, Columns.Count).End(xlToLeft).Column   ' Première colonne non utilisée
    Range(Cells(1, ColRef), Cells(DL, ColRef + Nombre - 1)).Select
    Selection.Copy: Cells(1, PC).Select: ActiveSheet.Paste  ' Copie colle nombre colonnes désirées
    Range(Cells(1, PC), Cells(DL, PC + Nombre - 1)).ClearContents   ' Effacement des données
    Range(Cells(1, PC), Cells(10, PC + Nombre - 1)).BorderAround , Weight:=xlMedium ' Entourage gras
    For i = 1 To Nombre                                     ' Insertion des dates et Numérotation
        Cells(2, PC + i - 1) = Date: Cells(9, PC + i - 1) = i
    Next i
    Cells(1, PC).Select                                     ' Sortie
End Sub
Plus le userform qui demande le nombre de colonnes à dupliquer.
Le lancement macro s'effectue sur appui sur le bouton Duplication.
 

Pièces jointes

  • Mission optimisation Excel (1).xlsm
    53.7 KB · Affichages: 3

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…