je souhaiterai copier des données d'une feuille à une autre feuille , dans un même classeur, en fonction du choix de l'utilisateur : ai crée un user form avec un choix à cocher
exemple : si il coche "1", la macro va copier les données D11 à D46 de la feuille "trame" sur la feuille "essai"
ou si "2".........................................E11 à E46.......................................................
ou si 3 ...........................................F11 à F46 ...................................................
choix = 31
(1 seul choix sur les 31 possibles)
mais je me dis que c'est super long ! un choix possible seulement, n'y a t il pas moyen d'aller plus vite ?
Re : copier collet des données avec userform critere de choix
Salut arvin, le Forum
Pas sur d'avoir compris mais teste ce code à mettre dans le module de l'UserForm
Option Explicit
Dim i As Byte, j As Byte
Private Sub CommandButton1_Click()
For i = 1 To 4
For j = 11 To 46
If Controls("CheckBox" & i) = True Then Sheets("trame").Cells(j, i + 3).Copy Destination:=Sheets("essai").Cells(j, i + 3)
Next j
Next i
Unload Me
End Sub
Re : copier collet des données avec userform critere de choix
bonjour Dull !
merci de ta réponse : c'est exactement cela , ai testé au niveau 10 cela fonctionne
mais par contre, pour qu'il y ait 31 choix...as tu vu mon userform, pas terrible
je me suis arrêté à 10 car c'est trop moche
as tu un moyen pour améliorer tout ça ?
ai trouvé un calendrier sur le forum : croix tu qu'on pourrait s'en servir -> ai essayé mais cela ne fonctionne pas
Re : copier collet des données avec userform critere de choix
coucou Dull ! en fait grâce à toi , ma macro fonctionne (sans le calendar) mais bon c'est pas top mais ça marche !
si tu as le temps de l'améliorer cela serait super
merci encore
à bientôt
Re : copier collet des données avec userform critere de choix
Bonjour DULL : ai voulu modifier la macro pour coller les valeurs dans la feuille active à l'endroit P1246
mais cela ne marche pas , pourquoi ?
Private Sub CommandButton2_Click()
Dim i As Byte, j As Byte
For i = 1 To 31
For j = 11 To 46
If Controls("CheckBox" & i) = True Then Sheets("trame").Cells(j, i + 3).Copy Destination:=ActiveSheet.Range("P1246")
Next j
Next i
Unload Me
Re : copier collet des données avec userform critere de choix
Salut arvin, le Forum
Il m'est très difficile de visualiser où tu veux en venir car les explications et le fichier fournis sont abstraits
Peux tu renvoyer un fichier représentatif de ton fichier d'origine avec ce que tu as et ce que tu veux.
Re : copier collet des données avec userform critere de choix
bonjour Dull et merci de ta réponse : en fait, oubli l'option calendar trop compliqué
ai réussi par contre à reporter pour le chekbox1 les données D11 à D46 de la feuille trame à la feuille active en P12 à P47
donc pour checkbox 2 ....................................................E11 à E46..............................................................................
et idem 31e fois : peut on aller plus vite ?
merci
If CheckBox1.Value = True Then
Worksheets("trame").Range("D11:d46").Copy
ActiveSheet.Range("P1247").PasteSpecial Paste:=xlValues
End If
UserForm4.Hide
CheckBox1.Value = False
Re : copier collet des données avec userform critere de choix
Re arvin, le fil
Alors si j'ai bien compris quel que soit le Checkbox choisit, la colonne correspondante doit être copié en P1247 de la feuille active Ce qui voudrait dire qu'une seul CheckBox doit être coché avant fermeture de l'USF? si c'est cela utilise plutôt des OptionButtons en lieux et places de Checkboxes
sinon pour la boucle essaye cela:
Private Sub CommandButton2_Click()
Dim i As Byte, j As Byte
For i = 1 To 31
For j = 11 To 46
If Controls("CheckBox" & i) = True Then ActiveSheet.Range("P" & j + 1 & "" & j + 1) = Sheets("trame").Cells(j, i + 3)
Next j
Next i
Unload Me
End Sub