Bonjour a tous !!
Et surtout merci pour votre ajout !!
je suis en train de construire un projet de simplification de documents grâce a VBA. petite explication de la manœuvre, je suis dans une entreprise qui produit des déchets, et chaque déchet a un Bon de Suivi de Déchets (BSD). Mon but est de créer une interface excel demandant a l'utilisateur parmi deux liste déroulantes de choisir le lieux de production du déchet ainsi que la nature de celui ci. et a partir de ces deux choix je vais faire apparaître un bouton pour que le document voulu s'imprime tout seul.
cependant j'ai fait l'erreur de tout traduire en VBA, mais je me suis aperçu qu'un userforme pourrait être beaucoup plus lisible et simple d'utilisation que sur une feuille excel.
donc ma question est : savez vous comment je peux basculer tout mon code sur le userforme ?
en gardant les mêmes caractéristiques (en particulier j'ai créé une liste déroulante qui s'actualise a chaque nouvelles données, et j'aimerais garder ce principe sur mon userforme)
merci d'avance pour toutes vos réponses !!!!
ps je vous joint mon code actuel qui n'est pas totalement terminé mais qui permet de comprendre toutes le manipes voulues
Sub Macro1()
'
' Macro1
'
'
Worksheets("Tableau 1,2").Range("A4:A80").Copy
' je vais dans la feuille tableau des cellules A4 a A80 et je les copie (80 pour avoir 10 lignes de marges pour nouveaux dechets villes etc.....)
Worksheets("Feuil1").Range("A1").PasteSpecial Paste:=xlPasteValues
' je vais ensuite en feuil1 case A1 et je fais un collage spécial avec collagespé = chaque valeur en un seul exemplaire
Worksheets("Feuil1").Range("$A$1:$A$100").RemoveDuplicates Columns:=1, Header:=xlNo
' je travail en feuil1, des cellules A1 (bloquée) a A100 est supprime tous les doublons de la colonne 1, et la premiere valeure sera par defaut (header: = x1No) la premiere cellule de la page
Worksheets("feuil1").Range("A1:A" & Range("A65536").End(xlUp).Row).Name = "Dets"
'liste echets
' toujours en feuil1 des cellules A1 a A65536, la boucle va jusqu'en bas et reonde a la derniere ligne ecrite
' Macro2
'
'
Worksheets("Tableau 1,2").Range("E4:E80").Copy
' je vais dans la feuille tableau des cellules E4 a E80 et je les copie
Worksheets("Feuil1").Range("E1").PasteSpecial Paste:=xlPasteValues
' je vais ensuite en feuil1 case E1 et je fais un collage spécial avec collagespé = chaque valeur en un seul exemplaire
Worksheets("Feuil1").Range("$E$1:$E$100").RemoveDuplicates Columns:=1, Header:=xlNo
' je travail en feuil1, des cellules A1 (bloquée) a A100 est supprime tous les doublons de la colonne 1, et la premiere valeure sera par defaut (header: = x1No) la premiere cellule de la page
Worksheets("feuil1").Range("E1:E" & Range("E65536").End(xlUp).Row).Name = "villes"
'liste villes
' toujours en feuil1 des cellules A1 a A65536, la boucle va jusqu'en bas et reonde a la derniere ligne ecrite
End Sub
Private Sub recherchedecells()
derligne = Worksheets("Tableau 1,2").Range("A65536").End(xlUp).Row
' défini la derligne (derniere ligne)
For ligne = 4 To derligne
'pour les lignes de 4 a la fin
If Worksheets("Tableau 1,2").Cells(ligne, 5).Value = Worksheets("Interface").Range("C1").Value And Worksheets("Tableau 1,2").Cells(ligne, 1).Value = Worksheets("Interface").Range("E1").Value Then
lignetrouvée = ligne
'si il reconnait la valeur d'une cellule du tableau (tableau 1.2)avec celle en C1 del'interface ET celle de E1 sur la meme ligne alors il retient la valeur de la ligne du tableau 1.2 ou il a trouvé ces deux parametres
Else
End If
Next ligne
'siret
Worksheets("aaa").Range("A3").Value = Worksheets("Tableau 1,2").Cells(lignetrouvée, 14).Value
'société
Worksheets("aaa").Range("B13").Value = Mid(Worksheets("Tableau 1,2").Cells(lignetrouvée, 3).Value, 1, 2)
Worksheets("aaa").Range("B14").Value = Mid(Worksheets("Tableau 1,2").Cells(lignetrouvée, 3).Value, 4, 2)
'les deux lignes précédentes servent à éclater une suite de chiffre par groupe de deux
Msg = MsgBox("terminé")
End Sub
'And colonne ='
'alors je recopie la valeur du déchet dans la feuil 1 1er cellule vide colonne B Worksheets("Tableau 1,2").Cells(ligne, 1).Value
'And Worksheets("Interface").Range("E1").Value = Worksheets("Tableau 1,2").Cells(ligne, 1).Value Then
Et surtout merci pour votre ajout !!
je suis en train de construire un projet de simplification de documents grâce a VBA. petite explication de la manœuvre, je suis dans une entreprise qui produit des déchets, et chaque déchet a un Bon de Suivi de Déchets (BSD). Mon but est de créer une interface excel demandant a l'utilisateur parmi deux liste déroulantes de choisir le lieux de production du déchet ainsi que la nature de celui ci. et a partir de ces deux choix je vais faire apparaître un bouton pour que le document voulu s'imprime tout seul.
cependant j'ai fait l'erreur de tout traduire en VBA, mais je me suis aperçu qu'un userforme pourrait être beaucoup plus lisible et simple d'utilisation que sur une feuille excel.
donc ma question est : savez vous comment je peux basculer tout mon code sur le userforme ?
en gardant les mêmes caractéristiques (en particulier j'ai créé une liste déroulante qui s'actualise a chaque nouvelles données, et j'aimerais garder ce principe sur mon userforme)
merci d'avance pour toutes vos réponses !!!!
ps je vous joint mon code actuel qui n'est pas totalement terminé mais qui permet de comprendre toutes le manipes voulues
Sub Macro1()
'
' Macro1
'
'
Worksheets("Tableau 1,2").Range("A4:A80").Copy
' je vais dans la feuille tableau des cellules A4 a A80 et je les copie (80 pour avoir 10 lignes de marges pour nouveaux dechets villes etc.....)
Worksheets("Feuil1").Range("A1").PasteSpecial Paste:=xlPasteValues
' je vais ensuite en feuil1 case A1 et je fais un collage spécial avec collagespé = chaque valeur en un seul exemplaire
Worksheets("Feuil1").Range("$A$1:$A$100").RemoveDuplicates Columns:=1, Header:=xlNo
' je travail en feuil1, des cellules A1 (bloquée) a A100 est supprime tous les doublons de la colonne 1, et la premiere valeure sera par defaut (header: = x1No) la premiere cellule de la page
Worksheets("feuil1").Range("A1:A" & Range("A65536").End(xlUp).Row).Name = "Dets"
'liste echets
' toujours en feuil1 des cellules A1 a A65536, la boucle va jusqu'en bas et reonde a la derniere ligne ecrite
' Macro2
'
'
Worksheets("Tableau 1,2").Range("E4:E80").Copy
' je vais dans la feuille tableau des cellules E4 a E80 et je les copie
Worksheets("Feuil1").Range("E1").PasteSpecial Paste:=xlPasteValues
' je vais ensuite en feuil1 case E1 et je fais un collage spécial avec collagespé = chaque valeur en un seul exemplaire
Worksheets("Feuil1").Range("$E$1:$E$100").RemoveDuplicates Columns:=1, Header:=xlNo
' je travail en feuil1, des cellules A1 (bloquée) a A100 est supprime tous les doublons de la colonne 1, et la premiere valeure sera par defaut (header: = x1No) la premiere cellule de la page
Worksheets("feuil1").Range("E1:E" & Range("E65536").End(xlUp).Row).Name = "villes"
'liste villes
' toujours en feuil1 des cellules A1 a A65536, la boucle va jusqu'en bas et reonde a la derniere ligne ecrite
End Sub
Private Sub recherchedecells()
derligne = Worksheets("Tableau 1,2").Range("A65536").End(xlUp).Row
' défini la derligne (derniere ligne)
For ligne = 4 To derligne
'pour les lignes de 4 a la fin
If Worksheets("Tableau 1,2").Cells(ligne, 5).Value = Worksheets("Interface").Range("C1").Value And Worksheets("Tableau 1,2").Cells(ligne, 1).Value = Worksheets("Interface").Range("E1").Value Then
lignetrouvée = ligne
'si il reconnait la valeur d'une cellule du tableau (tableau 1.2)avec celle en C1 del'interface ET celle de E1 sur la meme ligne alors il retient la valeur de la ligne du tableau 1.2 ou il a trouvé ces deux parametres
Else
End If
Next ligne
'siret
Worksheets("aaa").Range("A3").Value = Worksheets("Tableau 1,2").Cells(lignetrouvée, 14).Value
'société
Worksheets("aaa").Range("B13").Value = Mid(Worksheets("Tableau 1,2").Cells(lignetrouvée, 3).Value, 1, 2)
Worksheets("aaa").Range("B14").Value = Mid(Worksheets("Tableau 1,2").Cells(lignetrouvée, 3).Value, 4, 2)
'les deux lignes précédentes servent à éclater une suite de chiffre par groupe de deux
Msg = MsgBox("terminé")
End Sub
'And colonne ='
'alors je recopie la valeur du déchet dans la feuil 1 1er cellule vide colonne B Worksheets("Tableau 1,2").Cells(ligne, 1).Value
'And Worksheets("Interface").Range("E1").Value = Worksheets("Tableau 1,2").Cells(ligne, 1).Value Then