Optimisation d'un code VBA
Fermé
azertyh
Messages postés
121
Date d'inscription
mercredi 18 juillet 2007
Statut
Membre
Dernière intervention
23 janvier 2016
-
21 janv. 2016 à 09:47
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 23 janv. 2016 à 08:55
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 23 janv. 2016 à 08:55
A voir également:
- Optimisation d'un code VBA
- Optimisation pc - Accueil - Utilitaires
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
3 réponses
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
21 janv. 2016 à 13:35
21 janv. 2016 à 13:35
Bonjour,
Ce n'est pas de l'optimsation mais du parametrage de recuperation.
Pourquoi parametrer sur un programme complet ??
Ce n'est pas de l'optimsation mais du parametrage de recuperation.
Pourquoi parametrer sur un programme complet ??
azertyh
Messages postés
121
Date d'inscription
mercredi 18 juillet 2007
Statut
Membre
Dernière intervention
23 janvier 2016
21
23 janv. 2016 à 02:03
23 janv. 2016 à 02:03
bonsoir,
après moult recherches, j'ai ce code :
le problème est que ce code s'applique à toutes les feuilles du classeur alors que dans l'idéal, je sélectionne les feuilles à copier (disons Jan, Fév, Mar), je lance le macro, et je n'ai que les données de ces 3 feuilles dans ma feuille "data".
après moult recherches, j'ai ce code :
Sub boite_saisie()
'
' boite_saisie Macro
'
'
' Sheets(Array("Jan", "Fév", "Mar", "déc", "nov")).Select
Dim B As Worksheet
i = 2
C = Application.InputBox("Entrez la sélection à copier")
For Each B In ActiveWorkbook.Worksheets
B.Select False
For Each A In B.Range(C)
Worksheets("data").Cells(i, 1).Value = B.Cells(1, A.Column)
Worksheets("data").Cells(i, 2).Value = B.Cells(A.Row, 1)
Worksheets("data").Cells(i, 3).Value = B.Cells(A.Row, A.Column)
Worksheets("data").Cells(i, 4).Value = B.Name
i = i + 1
Next A
Next B
End Sub
le problème est que ce code s'applique à toutes les feuilles du classeur alors que dans l'idéal, je sélectionne les feuilles à copier (disons Jan, Fév, Mar), je lance le macro, et je n'ai que les données de ces 3 feuilles dans ma feuille "data".
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
23 janv. 2016 à 08:23
23 janv. 2016 à 08:23
Bonjour
exemple (xl2000) pour sélectionner des données (ici, mois) par cliquer-glisser (drag and drop) d'une listbox à une autre
http://www.cjoint.com/c/FAxhwfO2rUj
exemple (xl2000) pour sélectionner des données (ici, mois) par cliquer-glisser (drag and drop) d'une listbox à une autre
http://www.cjoint.com/c/FAxhwfO2rUj
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 23/01/2016 à 09:04
Modifié par michel_m le 23/01/2016 à 09:04
Ensuite par "paramétrer les transferts de données (L25....) de chaque mois
change le code du bouton valider en
et pour vérifier
a toi de jouer avec les transferts:
pour faciliter la maintenance change 'i" par "Lig" et "A" par "Cellule"
et commencer ton code par figer le défilement de l'écran et déclarer tes variables
change le code du bouton valider en
Private Sub Btn_valider_Click()
Dim Cptr As Byte
With Lbx_arrive
For Cptr = 0 To .ListCount - 1
Call tamacro(.List(Cptr))
Next Cptr
End With
et pour vérifier
Sub tamacro(onglet)
MsgBox onglet
End Sub
a toi de jouer avec les transferts:
pour faciliter la maintenance change 'i" par "Lig" et "A" par "Cellule"
et commencer ton code par figer le défilement de l'écran et déclarer tes variables
Application.screenupdating=false