Utilisation d'un boutton fonction sur excel
Résolu/Fermé
nonoche2801
Messages postés
25
Date d'inscription
lundi 28 juin 2010
Statut
Membre
Dernière intervention
1 juillet 2010
-
1 juil. 2010 à 13:51
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 2 juil. 2010 à 10:56
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 2 juil. 2010 à 10:56
A voir également:
- Utilisation d'un boutton fonction sur excel
- Excel fonction si et - Guide
- Notice d'utilisation - Guide
- Liste déroulante excel - Guide
- Utilisation chromecast - Guide
- Fonction moyenne excel - Guide
3 réponses
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
1 juil. 2010 à 15:37
1 juil. 2010 à 15:37
en début du module à l'extérieure de la sub
déclare tes variables... ;-)
ce qui donne....
Public ws1 As Worksheet
Public ws2 As Worksheet
Public Sub Main()
Set ws1 = Worksheets(1)
Set ws2 = Worksheets(2)
ReportMensuel
Set ws1 = Nothing
Set ws2 = Nothing
End Sub
déclare tes variables... ;-)
ce qui donne....
Public ws1 As Worksheet
Public ws2 As Worksheet
Public Sub Main()
Set ws1 = Worksheets(1)
Set ws2 = Worksheets(2)
ReportMensuel
Set ws1 = Nothing
Set ws2 = Nothing
End Sub
nonoche2801
Messages postés
25
Date d'inscription
lundi 28 juin 2010
Statut
Membre
Dernière intervention
1 juillet 2010
1 juil. 2010 à 17:12
1 juil. 2010 à 17:12
j'ai essayé et ça change rien.
Le nouveau code donne dans le module 1:
Public ws1 As Worksheet
Public ws2 As Worksheet
Public Sub Main()
Set ws1 = Worksheets(1)
Set ws2 = Worksheets(2)
ReportMensuel
Set ws1 = Nothing
Set ws2 = Nothing
End Sub
Public Sub ReportMensuel()
Dim derlig As Long
Dim lig As Long
lig = 2
derlig = ws1.Range("A65536").End(xlUp).Row
While ws2.Range("A" & lig).Value <> ""
derlig = derlig + 1
ws1.Range("C" & derlig).Value = ws2.Range("A" & lig).Value
lig = lig + 1
Wend
lig = 2
derlig = ws1.Range("A65536").End(xlUp).Row
While ws2.Range("B" & lig).Value <> ""
derlig = derlig + 1
ws1.Range("F" & derlig).Value = ws2.Range("B" & lig).Value
lig = lig + 1
Wend
End Sub
et cela ne fonctionne toujours pas je sais plus quoi faire je me décourage un peu.
on peut éventuellement faire autrement mais je sais comment .
En fait je veux que quand je clique sur un bouton. Des cellules se remplie en fonction des éléments rentré sur une autre feuille.
HELP ME .........
Le nouveau code donne dans le module 1:
Public ws1 As Worksheet
Public ws2 As Worksheet
Public Sub Main()
Set ws1 = Worksheets(1)
Set ws2 = Worksheets(2)
ReportMensuel
Set ws1 = Nothing
Set ws2 = Nothing
End Sub
Public Sub ReportMensuel()
Dim derlig As Long
Dim lig As Long
lig = 2
derlig = ws1.Range("A65536").End(xlUp).Row
While ws2.Range("A" & lig).Value <> ""
derlig = derlig + 1
ws1.Range("C" & derlig).Value = ws2.Range("A" & lig).Value
lig = lig + 1
Wend
lig = 2
derlig = ws1.Range("A65536").End(xlUp).Row
While ws2.Range("B" & lig).Value <> ""
derlig = derlig + 1
ws1.Range("F" & derlig).Value = ws2.Range("B" & lig).Value
lig = lig + 1
Wend
End Sub
et cela ne fonctionne toujours pas je sais plus quoi faire je me décourage un peu.
on peut éventuellement faire autrement mais je sais comment .
En fait je veux que quand je clique sur un bouton. Des cellules se remplie en fonction des éléments rentré sur une autre feuille.
HELP ME .........
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
2 juil. 2010 à 08:44
2 juil. 2010 à 08:44
Quelle est ton erreur ? donne le numéro et le message s'il te plait.
Comment s'appelle tes feuilles? as-tu essayé de l'écrire en "dur" à savoir
sheets("feuil1").... par exemple?
quel est ton niveau en vba ?
Comment s'appelle tes feuilles? as-tu essayé de l'écrire en "dur" à savoir
sheets("feuil1").... par exemple?
quel est ton niveau en vba ?
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
2 juil. 2010 à 10:32
2 juil. 2010 à 10:32
Bonjour tous,
Dans ton poste tu parle de mettre un bouton mais je vois que tu met le départ dans une sub ?
L'erreur c'est que tu ne décalre pas les variables Wk1 et 2, et comme tu n'a pas mis l'option explicit en haut du module rien ne t'est signaler quand aux déclarations.
Prend l'habitude de coller Option Explicit sur la première ligne de tes modules quel qu'il soit. Ce sera déjà une bonne série d'erreur qui te seront directement signalée.
Pour en revenir à ton code.
Sur la feuille où tu veux faire appel de la fonction tu colle un bouton tirer de la barre d'outils (pas formulaire)
Dés qu'il est coller tu double clic dessus pour entrer dans le code.
Tu devrais avoir quelque chose comme..
Au milieu tu ajoute..
Ensuite tu ajoute un module >> Insertion >> Module
Dans la nouvelle fenêtre tu colle le code ci-dessous
Ca devrait fonctionner.
Note que dans le cas présent il n'est pas du tout nécessaire d'employer des variables objets pour remplacer tes feuilles.
A+
Dans ton poste tu parle de mettre un bouton mais je vois que tu met le départ dans une sub ?
L'erreur c'est que tu ne décalre pas les variables Wk1 et 2, et comme tu n'a pas mis l'option explicit en haut du module rien ne t'est signaler quand aux déclarations.
Prend l'habitude de coller Option Explicit sur la première ligne de tes modules quel qu'il soit. Ce sera déjà une bonne série d'erreur qui te seront directement signalée.
Pour en revenir à ton code.
Sur la feuille où tu veux faire appel de la fonction tu colle un bouton tirer de la barre d'outils (pas formulaire)
Dés qu'il est coller tu double clic dessus pour entrer dans le code.
Tu devrais avoir quelque chose comme..
Private Sub CommandButton1_Click() End Sub
Au milieu tu ajoute..
Private Sub CommandButton1_Click() ReportMensuel End Sub
Ensuite tu ajoute un module >> Insertion >> Module
Dans la nouvelle fenêtre tu colle le code ci-dessous
Option Explicit Public ws1 As Worksheet Public ws2 As Worksheet Public Sub ReportMensuel() Dim derlig As Long Dim lig As Long Set ws1 = Worksheets(1) Set ws2 = Worksheets(2) lig = 2 derlig = ws1.Range("A65536").End(xlUp).Row While ws2.Range("A" & lig).Value <> "" derlig = derlig + 1 ws1.Range("C" & derlig).Value = ws2.Range("A" & lig).Value lig = lig + 1 Wend lig = 2 derlig = ws1.Range("A65536").End(xlUp).Row While ws2.Range("B" & lig).Value <> "" derlig = derlig + 1 ws1.Range("F" & derlig).Value = ws2.Range("B" & lig).Value lig = lig + 1 Wend Set ws1 = Nothing Set ws2 = Nothing End Sub
Ca devrait fonctionner.
Note que dans le cas présent il n'est pas du tout nécessaire d'employer des variables objets pour remplacer tes feuilles.
A+
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
2 juil. 2010 à 10:56
2 juil. 2010 à 10:56
Et je dirais même mieux ..."Ca devrait fonctionner. " ;-)