Erreur sur macro vba

Fermé
winny - 18 juin 2008 à 17:47
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 20 juin 2008 à 14:45
Bonjour,

je réalise une ptite macro qui permet de trier les lignes d'une feuille mais qund je lance la macro à partir d'une autre , excel me dit qu'ile me manque une variable, ou aussi qu'il attend un "=" derrière le nom de la macro : voici la macro en question:

Sub subZonage(zone As String, nblignesvisite As Integer, nomfeuille As String)
Dim indiceligne As Integer
indiceligne = 0
For i = 1 To nblignesvisite 'BOUCLE DE COPIE DES ITEMS
If Worksheets(nomfeuille).Cells(i, 9).Value = zone Then
Worksheets(nomfeuille).Rows(1).Insert Shift:=xlDown 'insertion de ligne
MsgBox ("blung:" & Worksheets(nomfeuille).Cells(i + 1, 9).Value & " ligne: " & i)
Worksheets(nomfeuille).Rows(i + 1).Select
Selection.Cut Destination:=Worksheets(nomfeuille).Rows(1)
indiceligne = indiceligne + 1
i = i + 1
End If

Next i
For d = nblignesvisite To 1 Step -1
If Application.CountA(Rows(d)) = Empty Then Rows(d).Delete
Next d
MsgBox ("blung:" & indiceligne)
Range("A1:Q" & indiceligne).Select
'selectionne toutes les lignes remplies
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
Selection.Rows.Group

End Sub

et quand je la lance comme montré plus bas, excel bloque sur la ligne subzonage:

Sub zonage(nomfeuille As String)

Dim nblignesvisite As Integer
Dim i As Integer
Dim indiceligne As Integer

indiceligne = 0
nblignesvisite = Cells.SpecialCells(xlCellTypeLastCell).Row
MsgBox ("blung:" & nblignesvisite)
subZonage("FUSELAGE", nblignesvisite, nomfeuille)

end sub

Si quelqu'un voit pourquoi ca marche pas, je suis interessé

Merci beaucoup
A voir également:

3 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
20 juin 2008 à 11:12
bonjour,

Il faut faire un call :
Call subZonage("FUSELAGE", nblignesvisite, nomfeuille) 


et mettre Byval dans les paramètre de subZonage :
Sub subZonage(ByVal zone As String, Byval ....)

;o)
0
niquel

merci bien
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
20 juin 2008 à 14:45
de rien ... oublie pas de mettre résolu, merci

;o)
0