2 macros identiques : l'une fonctionne très bien, l'autre pas

ptiteso

XLDnaute Nouveau
Bonjour,

J'ai un fichier de base que je divise en deux onglets. Pour ce faire j'ai 2 boutons, l'un pour le premier onglet, l'autre pour le second.

Lorsque je clique le premier tt se passe bien :
Sub Light()
Sheets("SPOKES_HUB").Select
fin = Feuil1.Range("B10000").End(xlUp).Row
a = 3
For i = 1 To 10000
If (Feuil1.Cells(i, 4) = 0 And Feuil1.Cells(i, 5) <> 0) Then
Feuil2.Cells(a, 1) = Feuil1.Cells(i, 5)
Feuil2.Cells(a, 2) = Feuil1.Cells(i, 7)
Feuil2.Cells(a, 3) = Feuil1.Cells(i, 10)
a = a + 1
Else:
End If
Next
End Sub


Mais le second bloque excel et ne se résout jamais :
Sub Light2()
Sheets("HUB_SPOKES").Select
fin = Feuil1.Range("B10000").End(xlUp).Row
b = 3
For j = 1 To 10000
If (Feuil1.Cells(j, 4) = 122) Or (Feuil1.Cells(j, 4) = 124) Then
Feuil5.Cells(b, 1) = Feuil1.Cells(j, 5)
Feuil5.Cells(b, 2) = Feuil1.Cells(j, 7)
Feuil5.Cells(b, 3) = Feuil1.Cells(j, 10)
b = b + 1
Else:
End If
Next
End Sub


Savez vous à quoi cela peut être dû?

Merci
 

Pierrot93

XLDnaute Barbatruc
Re : 2 macros identiques : l'une fonctionne très bien, l'autre pas

Bonjour,

tes 2 onglets sont dans le m^me classeur ? vérifie bien les différents "codename" (Feuil1..) de tes feuilles... Peut être nous indiquer où est placé le code... module sandard ou module de feuille ???

bon après midi
@+
 

KenDev

XLDnaute Impliqué
Re : 2 macros identiques : l'une fonctionne très bien, l'autre pas

Bonjour Ptiteso,

A priori les 2 subs ont la même structure. Peux tu joindre un fichier sans données confidentielles, allégé avec ueqlques données représentatives ? Cordialement

KD

Edit : bonjour Pierrot
 

ptiteso

XLDnaute Nouveau
Re : 2 macros identiques : l'une fonctionne très bien, l'autre pas

@Pierrot93 : oui mes 2 onglets sont ds le même fichier. Mes macros se trouvent dans Module 1 et j'ai créé un onglet "interface" où se trouvent mes boutons
@KenDev : en voulant crér un fichier très simplifier (sans volume et sans donnée confid) je me suis rendue compte que les 2 macros fonctionnaient... étrange?
 

KenDev

XLDnaute Impliqué
Re : 2 macros identiques : l'une fonctionne très bien, l'autre pas

Re,

... Un étrange qui doit s'expliquer mais pas sans les deux fichiers :)
Sinon as tu essayé de regrouper tes deux subs en une seule ? J'ai supposé que Feuil2 était SPOKES_HUB et Feuil5 HUB_SPOKES.
J'ai aussi corrigé le for i = 1 to 10000 puisque on s'est donné la peine juste avant de déterminer la fin de la liste (fin = Feuil1.Cells(Rows.Count, 2).End(xlUp).Row, test sur la colonne B)
Ce serait bien aussi de modifier Feuil1 par un w(3) par exemple si on avait le nom de cette feuille. Il faudrait alors modifier w(1 to 2) en w(1 to 3) et rajouter un Set w(3) = Worksheets("nom de la feuille qui recoit les données")
Cordialement

KD

Code:
Sub Light12()
Dim fin&, a&, b&, w(1 To 2) As Worksheet
Set w(1) = Worksheets("SPOKES_HUB"): Set w(2) = Worksheets("HUB_SPOKES")
fin = Feuil1.Cells(Rows.Count, 2).End(xlUp).Row
a = 3: b = 3
For i = 1 To fin
    If Feuil1.Cells(i, 4) = 0 And Feuil1.Cells(i, 5) <> 0 Then
        w(1).Cells(a, 1) = Feuil1.Cells(i, 5)
        w(1).Cells(a, 2) = Feuil1.Cells(i, 7)
        w(1).Cells(a, 3) = Feuil1.Cells(i, 10)
        a = a + 1
    Else
        If Feuil1.Cells(i, 4) = 122 Or Feuil1.Cells(i, 4) = 124 Then
            w(2).Cells(b, 1) = Feuil1.Cells(i, 5)
            w(2).Cells(b, 2) = Feuil1.Cells(i, 7)
            w(2).Cells(b, 3) = Feuil1.Cells(i, 10)
            b = b + 1
        End If
    End If
Next i
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa