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

Macro qui marche en debug mais pas en réel ?!

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

E

Eigle

Guest
Bonjour a tous , je suis sous win XP avec excel 2000 j'ai concu une macro qui marche en debug mais en réel elle tourne en boucle :/ 😕
Je n'ai pas trouver je fait donc appel a vous pour m'aide a resoudre ce bug .
Merci . 🙂

Code:
Sub Ajout_topo()


Sheets("Prod106std").Select

composant_row = Range("A1:Z20").Find("Composant").Row
composant_colone = Range("A1:Z20").Find("Composant").Column
composant = Cells(composant_row, composant_colone)

trace_row = Range("A1:Z20").Find("Trace").Row
trace_colone = Range("A1:Z20").Find("Trace").Column
Trace = Cells(trace_row, trace_colone)

colonne_vide = 2
            
Do While Cells(composant_row, colonne_vide) <> ""

colonne_vide = colonne_vide + 1

Loop

Cells(composant_row, colonne_vide).Select
ActiveCell.FormulaR1C1 = "TOPO"

Do While composant <> "0" And composant <> ""
    If Trace <> "" And Trace <> "Trace" Then
    
        For Each F In ThisWorkbook.Worksheets
        If F.Name <> "Prod106std" Then
        If F.Name <> "Macro" Then
        If F.Name <> "LDLA" Then
        If F.Name <> "hist" Then
                          
            On Error GoTo Error
            F.Select
            code_article_row = Range("A1:Z20").Find("CODE Article").Row
            code_article_colone = Range("A1:Z20").Find("CODE Article").Column
            code_article = Cells(code_article_row, code_article_colone)
            code_articlep = Cells(code_article_row + 1, code_article_colone)
            
            Topo_Column = Range("A1:Z20").Find("TOPO").Column
            Topo = Cells(code_article_row, Topo_Column)
            
            Do While code_article <> "" Or code_articlep <> ""
            
                If composant = code_article Then
                    
                    Cells(code_article_row, Topo_Column).Select
                    Selection.Copy
                    
                Sheets("Prod106std").Select
                Cells(composant_row, colonne_vide).Select
                ActiveSheet.Paste
                F.Select
                Exit Do
                
                End If
            
                code_article_row = code_article_row + 1
                Topo = Cells(code_article_row, Topo_Column)
                code_article = Cells(code_article_row, code_article_colone)
                code_articlep = Cells(code_article_row + 1, code_article_colone)
            Loop
            
Error:
        End If
        End If
        End If
        End If
        Next F
        
    End If
    
Sheets("Prod106std").Select
composant_row = composant_row + 1
composant = Cells(composant_row, composant_colone)
composant = composant * 0.01
Trace = Cells(composant_row, trace_colone)
Loop

End Sub
 
Re : Macro qui marche en debug mais pas en réel ?!

Bon finalement ca marche, j'ai reinitialisser tout mes feuille est ca a marcher j'avait du endommager des feuillers en testant ma macro a plusieur reprise .
 
Re : Macro qui marche en debug mais pas en réel ?!

Bonjour à tous
Bon finalement ca marche, j'ai reinitialisser tout mes feuille est ca a marcher j'avait du endommager des feuillers en testant ma macro a plusieur reprise .
J'arrête donc de chercher un erreur qui n'existe pas.
Pour ne pas avoir passé une heure et demie pour rien, je vous livre une remarque :
Il me semble que votre procédure de gestion des erreurs est bizarre. En cas d'erreur vous effectuez un saut vers une étiquette, sans traiter l'erreur. Ça peut suffire si une seule erreur survient pendant l'exécution de la procédure. Mais aux suivantes, j'ai un doute sur l'efficacité. Une structure de ce genre me semble plus sûre :
Code:
[COLOR="DarkSlateGray"]Sub Ajout_topo()
    
    ' code ...
    
    Do While Cells(composant_row, colonne_vide) <> ""
        If Trace <> "" And Trace <> "Trace" Then
        
            For Each F In ThisWorkbook.Worksheets
                If F.Name <> "Prod106std" Then
                    If F.Name <> "Macro" Then
                        If F.Name <> "LDLA" Then
                            If F.Name <> "hist" Then
                              
                                [COLOR="DarkOrange"]On Error GoTo Error[/COLOR]
                                F.Select
                
                                ' code...

[COLOR="DarkOrange"]Reprise:[/COLOR]
                            End If
                        End If
                    End If
                End If
            Next F
            
        End If
        
        ' code...

    Loop
[COLOR="DarkOrange"]Exit Sub[/COLOR]

[COLOR="DarkOrange"]Error:[/COLOR]
    [COLOR="DarkOrange"]On Error GoTo 0[/COLOR]
    ' éventeuellement, suite du traitement de l'erreur...
    [COLOR="DarkOrange"]Resume Reprise[/COLOR]
End Sub[/COLOR]
Ce n'est qu'un avis, prenez-en d'autres...​
ROGER2327
 
- 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
1
Affichages
326
Réponses
7
Affichages
378
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…