Boucle qui ne tourne pas

Bonjour,

Le but est d'intégrer "impact centre" sur la page "planning cust exp" lorsque sur la page "customer group" il y a le "yes" puis insérer "impact centre" à la colonne associé au "x" - 23. Or le problème est que tous les "impact centre" sont sur la même colonne et ne change pas... on dirait que ma partie en rouge ne tourne pas dans la boucle... merci d'avance !

Sub Calendrier()

Dim n As Integer

Dim x As Integer

Dim NbLignes As Integer

Dim rg As Range

Dim y As Integer

NbLignes = Sheets("Customer Group").Range("T12").End(xlDown).Row

n = 12

x = 4

For n = 12 To NbLignes

If Sheets("Customer Group").Cells(n, 21) = "Yes" Then

Set rg = Range(Sheets("Customer Group").Cells(n, "X"), Sheets("Customer Group").Cells(n, "AI")).Find("x", After:=Cells(n, "X"))

y = rg.Column - 23

Sheets("Planning Cust Exp").Cells(x, y) = "Impact Centre"

x = x + 1

Else

End If

Next

End Sub

Bonjour,

Dommage qu'il n'y ait pas de fichier joint, c'eut été pratique...

Petite question : est-ce que le x=4 dont on se sert ensuite dans la boucle est le même que le premier dans .Find("x", After:=Cells(n, "X")) ?

En gros, est-ce que tu cherches la valeur de x, soit 4 puis 5 etc. ou est-ce que tu cherches la lettre "x" ?

Bonjour toutes et tous

Un + comme a dit SlimShady69

et ce qui me chiffonne, c'est ce y en Integer

dim y

' Déclaration des variables
Dim n%, x%, NbLignes% 
Dim rg As Range
Dim y As Variant

NbLignes = Sheets("Customer Group").Range("T12").End(xlDown).Row
On Error Resume Next  ' Ajout
n = 12
x = 4

For n = 12 To NbLignes

If Sheets("Customer Group").Cells(n, 21) = "Yes" Then

Set rg = Range(Sheets("Customer Group").Cells(n, "x"), Sheets("Customer Group").Cells(n, "AI")).Find("x", After:=Cells(n, "x"))
y = rg.Column - 23

Sheets("Planning Cust Exp").Cells(x, y) = "Impact Centre"

x = x + 1

Else

End If

Next

End Sub

crdlt,

André

Bonjour,

Merci pour vos réponses mais :

@andre13 : Le fait de mettre en variant ne change rien

@SlimShady69 : Ce n'est pas le même, je cherche donc bien "x", j'ai changé le nom de la variable mais rien ne change...

Le but de cette macro est que j'ai un onglet avec 12 colonnes pour les 12 mois, à chaque ligne il y a un "x" pour indiquer le mois, et je veux mettre "impact centre" sur l'autre fichier au mois qui correspond.

Merci d'avance pour vos réponses !

Bonjour le forum,

@andre13 : Le fait de mettre en variant ne change rien

et en définissant rg en Variant ?

Et vas-tu toujours trouvé ton "x" ? Sinon il faut prévoir un On Error Resume Next je pense

Bonjour,

Mettre rg en Variant ne change rien non plus..

Je vais toujours trouver mon "x" si ma première condition est vrai (trouver le "Yes")

bonjour,

une proposition de correction,

vérifie aussi que nblignes est bien >=12

si ne fonctionne pas, merci de mettre un fichier exemple représentatif, comme déjà demandé plus haut !

Sub Calendrier()
    Dim n As Long
    Dim x As Long
    Dim NbLignes As Long
    Dim rg As Range
    Dim y As Long

    With Sheets("Customer Group")
        NbLignes = .Range("T12").End(xlDown).Row
        x = 4
        For n = 12 To NbLignes
            If .Cells(n, 21) = "Yes" Then
                Set rg = Range(.Cells(n, "X"), .Cells(n, "AI")).Find("x", After:=.Cells(n, "X"))
                If Not rg Is Nothing Then
                    y = rg.Column - 23
                    Sheets("Planning Cust Exp").Cells(x, y) = "Impact Centre"
                Else
                    MsgBox "x non trouvé pour la ligne " & n
                End If
                x = x + 1
            End If
        Next n
    End With
End Sub
3classeur2.xlsx (42.13 Ko)

ça ne fonctionne toujours pas... Voici le fichier

bonjour,

qu'est-ce qui ne fonctionne pas ? dans ton fichier il n'y a aucune donnée en colonne T, donc la dernière ligne est la dernière ligne possible pour excel >1000000 (la procédure fonctionnera mais durera longtemps, quelques secondes)

J'ai trouvé c'est bon !

Merci de votre aide

Rechercher des sujets similaires à "boucle qui tourne pas"