Decrementer tout seul dans macro
samuel25
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai un macro disons sub fonc1() qui selectionne une range par exemple de B2:B6
for each cel in selection
A1 prends la valeur de cel.
j'ai un macro sub fonc2() qui appelle fonc1 onTime. et qui place disons B2 dans A1.
ce que je veux faire en gros, appeler fonc2, avoir la valeur de B2 dans A1... puis appeler fonc2 encore une fois et avoir B3 dans A1 cette fois ci.. et ainsi de suite jusque la fin de la selection de fonc1... ceci est-il possible??
Merci
j'ai un macro disons sub fonc1() qui selectionne une range par exemple de B2:B6
for each cel in selection
A1 prends la valeur de cel.
j'ai un macro sub fonc2() qui appelle fonc1 onTime. et qui place disons B2 dans A1.
ce que je veux faire en gros, appeler fonc2, avoir la valeur de B2 dans A1... puis appeler fonc2 encore une fois et avoir B3 dans A1 cette fois ci.. et ainsi de suite jusque la fin de la selection de fonc1... ceci est-il possible??
Merci
A voir également:
- Decrementer tout seul dans macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Mon téléphone envoie des sms tout seul - Forum Samsung
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Mon compte instagram s'abonne tout seul - Forum Instagram
- Son dans un seul écouteur avec fil ✓ - Forum iPhone
6 réponses
Bonjour,
Sûrement possible mais comprendre ta description l'est moins.
Pour fonc1() tu balayes B2:B6 pour mettre la valeur dans A1 : autant y mettre directement la valeur de B6 c'est c'est tout ce que tu y fais, tu n'auras pas le temps de voir.
et fonc2() fait pareil...
voilà, je t'ai quand même mis une boite de dialogue que tu vois
A mon avis tu n'as pas tout dit ;-)
eric
Sûrement possible mais comprendre ta description l'est moins.
Pour fonc1() tu balayes B2:B6 pour mettre la valeur dans A1 : autant y mettre directement la valeur de B6 c'est c'est tout ce que tu y fais, tu n'auras pas le temps de voir.
et fonc2() fait pareil...
Sub test()
For Each cel In [B2:B6]
[A1].Value = cel.Value
MsgBox (cel.Address)
Next cel
End Sub
voilà, je t'ai quand même mis une boite de dialogue que tu vois
A mon avis tu n'as pas tout dit ;-)
eric
salut,
voila l'explication totale:
j'ai un excel dynamique... (enfin on m'en a donne un quoi) qui se connecte a je ne sais pas quoi... bref...
lorsque je mets une KEY precise dans la case A1 disont, le fichier genere pleins d'infos dans le sheet1, et creer plein de requetes SQL dans le sheet3...
dans le sheet 2 il y a une liste de KEY
donc au depart j'ai fait une liste deroulante dans le sheet 1, l'utilisateur choisis la KEY qu'il veut et le reste se fait tout seul...
j'ai du ensuite creer un bouton qui execute toutes les requetes SQL... ca c bon...
mnt on me dit...
j'ai la fonc2 qui execute les requetes... je mets un OnTime dedans pour appeler la fonc1... cette fonc1 remplace dans sheet1!A1 la case disons sheet2!B2 apres par exemple 10secondes.
je r'appelle fonc2, elle execute les requetes et 10 secondes apres appelle fonc1 qui elle mettra sheet2!B3 dans sheet1!A1... donc du coup la selection a decrementer!!!
c un truc de fou je sais...
on m;a dit que offset pourrait m'aider mais je n'ai aucune idee de comment c;est possible!!
merci de ton aide eric, et tous les autres qui lisent c truc maxi complique...
voila l'explication totale:
j'ai un excel dynamique... (enfin on m'en a donne un quoi) qui se connecte a je ne sais pas quoi... bref...
lorsque je mets une KEY precise dans la case A1 disont, le fichier genere pleins d'infos dans le sheet1, et creer plein de requetes SQL dans le sheet3...
dans le sheet 2 il y a une liste de KEY
donc au depart j'ai fait une liste deroulante dans le sheet 1, l'utilisateur choisis la KEY qu'il veut et le reste se fait tout seul...
j'ai du ensuite creer un bouton qui execute toutes les requetes SQL... ca c bon...
mnt on me dit...
j'ai la fonc2 qui execute les requetes... je mets un OnTime dedans pour appeler la fonc1... cette fonc1 remplace dans sheet1!A1 la case disons sheet2!B2 apres par exemple 10secondes.
je r'appelle fonc2, elle execute les requetes et 10 secondes apres appelle fonc1 qui elle mettra sheet2!B3 dans sheet1!A1... donc du coup la selection a decrementer!!!
c un truc de fou je sais...
on m;a dit que offset pourrait m'aider mais je n'ai aucune idee de comment c;est possible!!
merci de ton aide eric, et tous les autres qui lisent c truc maxi complique...
Bonjour,
Tu as un excel en anglais ou il faut traduire (sheet2 => feuil2) ?
D'accord, je vois un peu mieux.
Et à ton avis il faut que fonc1() passe en parametre l'incrément ou l'adresse de la cellule à fonc2() ou ça doit etre calculé dans fonc2() (ou c'est comme on veut) ?
Tu as un excel en anglais ou il faut traduire (sheet2 => feuil2) ?
D'accord, je vois un peu mieux.
Et à ton avis il faut que fonc1() passe en parametre l'incrément ou l'adresse de la cellule à fonc2() ou ça doit etre calculé dans fonc2() (ou c'est comme on veut) ?
Re,
Voilà une partie de ta solution.
Le problème que je rencontre c'est qu'il ne trouve pas fonc1() dans l'appel par ontime (ligne en commentaire).
Il doit falloir lui passer le nom de la procédure autrement que par une chaine mais actuellement je ne vois pas comment
eric
Voilà une partie de ta solution.
Le problème que je rencontre c'est qu'il ne trouve pas fonc1() dans l'appel par ontime (ligne en commentaire).
Il doit falloir lui passer le nom de la procédure autrement que par une chaine mais actuellement je ne vois pas comment
Dim proc As String
Dim i As Long
Sub fonc1(ByVal inc As Long)
[feuil1!A1].Value = [feuil2!B2].Offset(inc, 0).Value
End Sub
Sub fonc2()
For i = 0 To 4
proc = "fonc1 (" & i & ")"
fonc1 (i)
'Application.OnTime Now + TimeValue("00:00:02"), proc
Next i
End Sub
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
effectivement ca marche pas...
g meme essayer avec: Application.OnTime Now + TimeValue("00:00:05"), "fonc1(" & i & ")"
par exemple et tjs rien :(
au secours tout le monde!!!
sam
effectivement ca marche pas...
g meme essayer avec: Application.OnTime Now + TimeValue("00:00:05"), "fonc1(" & i & ")"
par exemple et tjs rien :(
au secours tout le monde!!!
sam
Et bien désolé, tu vas encore etre déçu.
Qcq tests m'ont montré que c'est le passage de parametre que ontime n'aime pas
Donc j'essaie sans :
Mais inc mis à jour dans fonc1 n'est pas vu dans fonc1(), même en la déclarant Public
Ca doit etre évident mais je ne vois pas pourquoi.
Je te livre quand même, tu auras pe la réponse, ou un visiteur
eric
Qcq tests m'ont montré que c'est le passage de parametre que ontime n'aime pas
Donc j'essaie sans :
Dim inc As Long
Sub fonc1()
[feuil1!A1].Value = [feuil2!B2].Offset(inc, 0).Value
'MsgBox (inc)
End Sub
Sub fonc2()
For inc= 0 To 4
Application.OnTime Now + TimeValue("00:00:02"), "fonc1"
Next inc
End Sub
Mais inc mis à jour dans fonc1 n'est pas vu dans fonc1(), même en la déclarant Public
Ca doit etre évident mais je ne vois pas pourquoi.
Je te livre quand même, tu auras pe la réponse, ou un visiteur
eric