Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Bouton avec code agissant sur une autre feuille du classeur

  • Initiateur de la discussion Initiateur de la discussion armitage92
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

armitage92

Guest
Bonsoir à tous,

J'essaie de mettre a jour un fichier excel, et j'ai beaucoup de mal sur le codage VBA, ma bête noir 🙁

Je travail sur excel 2003 et voici mon problème :

j'ai mis un bouton de commande, sur la feuille "Scorecard" de mon fichier excel.

Le code de ce bouton doit agir sur la feuille "Inc_BO_XI" de ce même fichier excel.

et.. je n'y arrive pas.

Le code initial, que je souhaite donc adapter, est le suivant (il était en macro directement dans la feuille Inc_BO_XI jusqu'alors):

Private Sub CommandButton1_Click()

Dim i As Integer


With Application.WorksheetFunction
For i = 2 To 10000

If Cells(i, 7) <> "" Then
Cells(i, 11) = IIf(.CountIf(Range(Cells(1, 56), Cells(i - 1, 11)), .RoundDown(Cells(i, 5), 0) & Cells(i, 7)) > 0, "", .RoundDown(Cells(i, 5), 0) & Cells(i, 7))
End If
Next
End With
End Sub


Merci d'avance pour votre aide 🙂


ps : il faudrait également que ce code mette a jour mon fichier excel, une fois réalisé ( qu'il fasse un genre de F9 automatique, donc).
 
Re : Bouton avec code agissant sur une autre feuille du classeur

Salut armitage92 et le forum
Il existe des balises de code (#), c'est pas pour faire bien, c'est pour être utilisé!

une proposition :
Code:
Private Sub CommandButton1_Click()
Dim i As Integer
Dim F As Worksheet
Set F = Sheets("Inc_BO_XI")
With Application.WorksheetFunction
    For i = 2 To 10000
        If F.Cells(i, 7) <> "" Then F.Cells(i, 11) = IIf(.CountIf(F.Range(F.Cells(1, 56), F.Cells(i - 1, 11)), _
              .RoundDown(F.Cells(i, 5), 0) & F.Cells(i, 7)) > 0, "", _
              .RoundDown(F.Cells(i, 5), 0) & F.Cells(i, 7))
    Next
End With
End Sub
Ne connaissance pas le fichier, je ne peux l'améliorer, mais la boucle de 2 à 10000 me semble surfaite :
For i=2 to F.cells(rows.count, "G").end(xlup).row
devrait être plus rapide
A+
 
Re : Bouton avec code agissant sur une autre feuille du classeur

Bonsoir à tous
Une proposition du même genre, évidemment pas testée...
Code:
[COLOR="DarkSlateGray"][B]Private Sub CommandButton1_Click()
Dim i As Integer, wf As Object
   Set wf = Application.WorksheetFunction
   With Sheets("Inc_BO_XI")
      For i = 2 To 10000
         If .Cells(i, 7) <> "" Then
            .Cells(i, 11) = IIf(wf.CountIf(.Range(.Cells(1, 56), .Cells(i - 1, 11)), _
               wf.RoundDown(.Cells(i, 5), 0) & .Cells(i, 7)) > 0, "", _
               wf.RoundDown(.Cells(i, 5), 0) & .Cells(i, 7))
         End If
      Next
   End With
   Set wf = Nothing
   Application.Calculate
End Sub[/B][/COLOR]
ROGER2327
#2711
 
Re : Bouton avec code agissant sur une autre feuille du classeur

Bonjour Gorfael,

Effectivement, j'aurais du délimité mon code, j'ai été un petit peu vite en besogne, désolé :s

En tout cas, merci pour ton aide, cela fonctionne parfaitement, et tu as raison pour ta suggestion sur ma boucle, elle n'atteind les 10000 qu'en fin d'année, et donc on peut la faire tourner plus rapidement pendant 11 mois avec ta solution 🙂

Je profite de ton aide, qui m'est précieuse, pour te demander une dernière chose pour aujourd'hui 🙂

Pour effectuer un "F9" pour mettre a jour mon fichier excel, sait tu quel est la ligne de commande a inclure ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
914
Réponses
15
Affichages
788
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…