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

debeguer une macros

  • Initiateur de la discussion Initiateur de la discussion oufkiryo
  • 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 !

Re : debeguer une macros

Bonjour oufkiryo,

Sagissant de lignes, tes variables doivent être déclarées en tant que Long
Code:
Dim i As Long, j As Long

A+
 
Re : debeguer une macros

do loop est une boucle qui continue aussi longtemps qu'une condition est vraie

donc il faut que dans le défilement du programme soit provoquer la fin de la boucle soit que la condition devienne false
 
Re : debeguer une macros

Bonjour le fil, bonjour le forum,

Peut-être comme ça mais comme dans ton exemple il manque l'onglet Evolution T.congés j'ai pas pu tester...
Code:
Private Sub CommandButton1_Click()
Dim i As Integer, j As Integer, k As Integer
 
For i = 4 To Worksheets("charge").Cells(Application.Rows.Count, 1).End(xlUp).Row
    For j = 6 To Worksheets("MCBZ").Cells(Application.Rows.Count, 2).End(xlUp).Row
        For k = 6 To Worksheets("Evolution T.congés").Cells(6, Application.Columns.Count).End(xlToLeft).Column
            If Worksheets("Evolution T.congés").Cells(6, k).Value = "10" Then Exit For
            If ThisWorkbook.Worksheets("charge").Range("A" & i) = ThisWorkbook.Worksheets("MCBZ").Range("b" & j) Then
                If ThisWorkbook.Worksheets("MCBZ").Range("k" & j) = ThisWorkbook.Worksheets("charge").Cells(3, k) Then
                    ThisWorkbook.Worksheets("charge").Cells(3, k) = ThisWorkbook.Worksheets("charge").Cells(3, k) + _
                            ThisWorkbook.Worksheets("MCBZ").Range("c" & j)
                End If
            End If
       Next k
    Next j
Next i
End Sub
 
Re : debeguer une macros

l'erreur est depacement de capacité
je pense que le problème est dans cette partie:

If ThisWorkbook.Worksheets("MCBZ").Range("k" & j) = ThisWorkbook.Worksheets("charge").Cells(3, k) Then
ThisWorkbook.Worksheets("charge").Cells(3, k) = ThisWorkbook.Worksheets("charge").Cells(3, k) + _
ThisWorkbook.Worksheets("MCBZ").Range("c" & j)
 
Re : debeguer une macros

Bonjour le fil, bonjour le forum,

J'avais pas rafraîchi. Si k s'arrête à 52 ça donnerait ça (à tester) :
Code:
Private Sub CommandButton1_Click()
Dim i As Integer, j As Integer, k As Integer
 
For i = 4 To Worksheets("charge").Cells(Application.Rows.Count, 1).End(xlUp).Row
    For j = 6 To Worksheets("MCBZ").Cells(Application.Rows.Count, 2).End(xlUp).Row
        For k = 6 To 52
            If Worksheets("Evolution T.congés").Cells(6, k).Value = "10" Then Exit For
            If ThisWorkbook.Worksheets("charge").Range("A" & i) = ThisWorkbook.Worksheets("MCBZ").Range("b" & j) Then
                If ThisWorkbook.Worksheets("MCBZ").Range("k" & j) = ThisWorkbook.Worksheets("charge").Cells(3, k) Then
                    ThisWorkbook.Worksheets("charge").Cells(3, k) = ThisWorkbook.Worksheets("charge").Cells(3, k) + _
                            ThisWorkbook.Worksheets("MCBZ").Range("c" & j)
                End If
            End If
       Next k
    Next j
Next i
End Sub
 
Re : debeguer une macros

Bonjour a tous

@ oufkiryo

Et si tu nous disais ce que cette macro est censé faire !!!
Peut-etre pourrions trouver une macro qui ne bug point

Edit : Arf a la bourre moi !!
Il semble que vous , vous avez compris
 
Re : debeguer une macros

ok pierrejean
je veux que cette macro prend les valeurs de la collone c de la feuille MCBZ et les mettre dans la feuille charge, en prenant compte le numero de la semaine.

merci
 
Re : debeguer une macros

Bonjour le fil, bonjour le forum,

Ben oui ça plante évidemment... Remplace Evolution T.congés par charge et ça ira mieux...
Code:
Private Sub CommandButton1_Click()
Dim i As Integer, j As Integer, k As Integer
 
For i = 4 To Worksheets("charge").Cells(Application.Rows.Count, 1).End(xlUp).Row
    For j = 6 To Worksheets("MCBZ").Cells(Application.Rows.Count, 2).End(xlUp).Row
        For k = 6 To 52
            If Worksheets("charge").Cells(6, k).Value = "10" Then Exit For
            If ThisWorkbook.Worksheets("charge").Range("A" & i) = ThisWorkbook.Worksheets("MCBZ").Range("b" & j) Then
                If ThisWorkbook.Worksheets("MCBZ").Range("k" & j) = ThisWorkbook.Worksheets("charge").Cells(3, k) Then
                    ThisWorkbook.Worksheets("charge").Cells(3, k) = ThisWorkbook.Worksheets("charge").Cells(3, k) + _
                            ThisWorkbook.Worksheets("MCBZ").Range("c" & j)
                End If
            End If
       Next k
    Next j
Next i
End Sub
Mais, comme PierrJean, je n'ai pas compris où tu voulais en venir...
Peux-tu nous faire un nouvel exemple avec avant et après la macro ?
 
- 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
15
Affichages
636
W
  • Question Question
Microsoft 365 archivage excel
Réponses
12
Affichages
279
  • Question Question
Microsoft 365 problème CHDIR
Réponses
59
Affichages
2 K
Réponses
2
Affichages
107
Réponses
7
Affichages
179
Réponses
8
Affichages
317
Réponses
3
Affichages
473
  • Question Question
XL 2016 liste
Réponses
10
Affichages
388
Réponses
7
Affichages
267
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…