Boucle If qui ne marche pas

Bonjour voici mon problème je cherche à copier des valeurs d'une colonne dans une autre mais ma boucle If ne marche pas. Auriez-vous une idée de pourquoi ?

N'hésitez pas à me dire si vous avez besoin de plus d'explications

Ci joint mon code et mon fichier :

Sub NP()
' on met la decription de l'élément redouté dans la case L44 (pour laisser de la place) de la feuille 2

Worksheets("NP").Range("L44").Value = Worksheets("Scénario").Range("C6").Value 'niveau N de référence

' on commence par créer les causes
' algo pour récupérer toutes les descriptions et les mettre dans l'ordre dans une colonne à part du niveau N-i
'On récupère les niveaux max positif/negatif

' définition des variables

Dim niveauxmaxpositif As Integer, niveauxmaxnegatis As Integer, niveau As Integer, j As Integer, nombreligne As Integer, depart As Integer
niveauxmaxpositif = Worksheets("Scénario").Cells(4, 28) ' penser à mettre des valeurs pour que le programme marche
niveauxmaxnegatif = Worksheets("Scénario").Cells(3, 28)
colonneniveau = Application.WorksheetFunction.CountA(Range("C:C")) 'on compte le nombre de cellule non vide dans la colonne C(niveaux) peut-être à ajuster en fonction des titres ect
j = 0
For k = 1 To niveauxmaxnegatif
    For i = 9 To colonneniveau ' algo pour copier toutes les descriptions dans la colonne AL dans l'ordre du niveau N-i
        If Worksheets("Scénario").Cells(5, 28) = 0 Then
            j = j + 1 ' compteur pour les lignes de la colonne AL (colonne à changer en fonction de la longueur du tableau)
            Worksheets("Scénario").Cells(j, 38) = Worksheets("Scénario").Cells(i, 5)  'on copie les descriptions du niveau N-i dans une colonne à côté (ici AL) à adapter en niveau N-i
        End If
    Next
Next
End Sub

Merci !

bonjour,

je ne sais pas si c'est ton problème, mais il te manque le nom de la feuille dans cette instruction.

colonneniveau = Application.WorksheetFunction.CountA(Range("C:C")) 'on compte le nombre de cellule non vide dans la colonne C(niveaux) peut-être à ajuster en fonction des titres ect

cela devrait être

colonneniveau = Application.WorksheetFunction.CountA(worksheets("Scénario").Range("C:C")) 'on compte le nombre de cellule non vide dans la colonne C(niveaux) peut-être à ajuster en fonction des titres ect

si tu veux que cela fonctionne même si la feuille scénario n'est pas la feuille active au moment de l'exécution de la macro.

Bonjour, non ce n'était pas ça, en redémarrant mon ordinateur cela a fini par fonctionner alors que le code n'a pas été touché ! Mystère !

Merci pour votre aide !

bonjour,

avec ton code initial, la macro fonctionne si la feuille scénario est active au moment de lancer la macro, sinon ta macro ne fonctionne pas. En arrêtant ton ordinateur et redémarrant excel, c'est probablement la feuille scénario qui était active par défaut. Dans tous les cas, je te conseille de faire la modification proposée, sinon ta macro ne fonctionnera pas si tu la lances après avoir activé une autre feuille que la feuille scénario.

D'accord merci beaucoup !

Rechercher des sujets similaires à "boucle qui marche pas"