Problème d'incrémentation

gopo

XLDnaute Junior
Bonjour,

Voila mon code, enfaite j'ai un soucis d'incrémentation je voudrais qu'il vérifie des cellules en +27 mais cela ne fait rien ...

Code:
Sub COPY()
Dim Variable1 As String
Dim Variable2 As String
Dim Variable3 As String
Dim Variable4 As String
Dim Variable5 As String
Dim Variable6 As String
Dim Variable7 As String

Dim i As Integer
Dim j As Integer

    For i = 9 To 256
         If Cells(i, 2) = "753220 - PARIS KELLER ACP" Then
            For j = i + 1 To 256
                If Cells(i + 1, j) = "Janvier" Then
                     ActiveWorkbook.Sheets("Détail ACP").Select
                     
                     Variable1 = ActiveSheet.Cells(12, j).Value
                     Variable2 = ActiveSheet.Cells(17, j).Value
                     Variable3 = ActiveSheet.Cells(19, j).Value
                     Variable4 = ActiveSheet.Cells(21, j).Value
                     Variable5 = ActiveSheet.Cells(22, j).Value
                     Variable6 = ActiveSheet.Cells(26, j).Value
                     Variable7 = ActiveSheet.Cells(27, j).Value
                     
                     Workbooks.Open ActiveWorkbook.Path & "\TBM ACP.xls"
                     
                     ActiveWorkbook.Sheets("Paris Keller").Cells(10, 7).Value = Variable1
                     ActiveWorkbook.Sheets("Paris Keller").Cells(11, 7).Value = Variable2
                     ActiveWorkbook.Sheets("Paris Keller").Cells(12, 7).Value = Variable3
                     ActiveWorkbook.Sheets("Paris Keller").Cells(14, 7).Value = Variable4
                     ActiveWorkbook.Sheets("Paris Keller").Cells(15, 7).Value = Variable5
                     ActiveWorkbook.Sheets("Paris Keller").Cells(16, 7).Value = Variable6
                     ActiveWorkbook.Sheets("Paris Keller").Cells(18, 7).Value = Variable7
                     
                     ActiveWorkbook.Sheets("Paris Keller").Select
                     j = j + 1
                End If
            Next
        Exit Sub
        i = i + 27
   End If
Next

End Sub

Il devrait vérifier la celulle (B,9) (B,36) (B,63) etc... mais nan ! la seul chose qui réalise bien c'est quand la celulle (B,9) donc la premiere confirm la condition ca passe puis (B,36) il veut plus vérifié .. ca viendrait d'un problème d'incrémentation ... ?


Merci de me lire
 

skoobi

XLDnaute Barbatruc
Re : Problème d'incrémentation

Bonjour,

pas évidant de s'imaginer se qui se passe sans voir le fichier.
2 choses tout de même:

j = j + 1 est inutile vu que la boucle "For j = i + 1 To 256" s'en charge déjà.
Pour mettre un "pas" dans une boucle écris la première boucle comme ceci:
For i = 9 To 256 Step 26

i = i + 27 devient de ce fait également inutile.
Mais je pense pas que ça résout le problème, quoi que ...

Un conseil: exécute la macro en pas à pas, touche F8 et obsèrve ce qui se passe.
 

gopo

XLDnaute Junior
Re : Problème d'incrémentation

je vien de tester avec F8, il passe fait
Code:
-> [COLOR="red"]For i = 9 To 256 Step 26[/COLOR]
      ->  [COLOR="red"]If Cells(i, 2) = "753220 - PARIS KELLER ACP" Then[/COLOR]

[I][SIZE="3"]        For j = i + 1 To 256
                If Cells(i + 1, j) = "Janvier" Then
                     ActiveWorkbook.Sheets("Détail ACP").Select
                     
                     Variable1 = ActiveSheet.Cells(12, j).Value
                     Variable2 = ActiveSheet.Cells(17, j).Value
                     Variable3 = ActiveSheet.Cells(19, j).Value
                     Variable4 = ActiveSheet.Cells(21, j).Value
                     Variable5 = ActiveSheet.Cells(22, j).Value
                     Variable6 = ActiveSheet.Cells(26, j).Value
                     Variable7 = ActiveSheet.Cells(27, j).Value
                     
                     Workbooks.Open ActiveWorkbook.Path & "\TBM ACP.xls"
                     
                     ActiveWorkbook.Sheets("Paris Keller").Cells(10, 7).Value = Variable1
                     ActiveWorkbook.Sheets("Paris Keller").Cells(11, 7).Value = Variable2
                     ActiveWorkbook.Sheets("Paris Keller").Cells(12, 7).Value = Variable3
                     ActiveWorkbook.Sheets("Paris Keller").Cells(14, 7).Value = Variable4
                     ActiveWorkbook.Sheets("Paris Keller").Cells(15, 7).Value = Variable5
                     ActiveWorkbook.Sheets("Paris Keller").Cells(16, 7).Value = Variable6
                     ActiveWorkbook.Sheets("Paris Keller").Cells(18, 7).Value = Variable7
                     
                     ActiveWorkbook.Sheets("Paris Keller").Select
                End If
            Next
        Exit Sub[/SIZE][/I]
  -> [COLOR="red"]End If[/COLOR]
-> [COLOR="red"]Next[/COLOR]

Il effectue les fleches, donc ne rentre pas dans la condition :
If Cells(i, 2) = "753220 - PARIS KELLER ACP" Then ce texte se trouve en B36, donc si je n'mabuse il devrait pas faire la condition donc faire "NEXT" puis apres il devrait faire "THEN" vu que la condition est remplie car on se trouve en B36.
Cells(i, 2) 2 = B, puis y vaudra 36 ( 9 + step 26 , jai fait le teste avec step 27 )

Pourquoi ne confirme t'il pas la condition ?? :confused:
 

tototiti2008

XLDnaute Barbatruc
Re : Problème d'incrémentation

Bon, tu postes un code avec Step 26 mais tu as utilisé Step 27... c'est sans doute pour faciliter notre débogage

donc en pas à pas, avance jusqu'à ce que i = 36 puis mets un espion sur l'expression

Cells(i, 2)

pour voir ce qu'elle vaut
 

gopo

XLDnaute Junior
Re : Problème d'incrémentation

Tout marche pour le mieux, merci ! je sais pas comment ca refonctionné j'ai mis un espion et hop il rentre dans ma condition ... Hmmm :eek: bref puis j'ai fait quelque changement et puis tout marche niquel !

MERCI !!!!!!!!!!!!!

Code:
Dim Variable4 As String
Dim Variable5 As String
Dim Variable6 As String
Dim Variable7 As String

Dim i As Integer
Dim j As Integer
Dim h As Integer

    For i = 9 To 256 Step 27
         If Cells(i, 2) = "780970 - VELIZY ACP" Then
                For j = 5 To 256 Step 1
                    
                 If Cells(i + 1, j) = "Janvier" Then
                     ActiveWorkbook.Sheets("Détail ACP").Select
                     
                     Variable1 = ActiveSheet.Cells(i + 3, j).Value
                     Variable2 = ActiveSheet.Cells(i + 8, j).Value
                     Variable3 = ActiveSheet.Cells(i + 12, j).Value
                     Variable4 = ActiveSheet.Cells(i + 14, j).Value
                     Variable5 = ActiveSheet.Cells(i + 16, j).Value
                     Variable6 = ActiveSheet.Cells(i + 19, j).Value
                     Variable7 = ActiveSheet.Cells(i + 20, j).Value
                     
                     Workbooks.Open ActiveWorkbook.Path & "\TBM ACP.xls"
                     
                     ActiveWorkbook.Sheets("Paris Keller").Cells(10, 7).Value = Variable1
                     ActiveWorkbook.Sheets("Paris Keller").Cells(11, 7).Value = Variable2
                     ActiveWorkbook.Sheets("Paris Keller").Cells(12, 7).Value = Variable3
                     ActiveWorkbook.Sheets("Paris Keller").Cells(14, 7).Value = Variable4
                     ActiveWorkbook.Sheets("Paris Keller").Cells(15, 7).Value = Variable5
                     ActiveWorkbook.Sheets("Paris Keller").Cells(16, 7).Value = Variable6
                     ActiveWorkbook.Sheets("Paris Keller").Cells(18, 7).Value = Variable7
                     
                     ActiveWorkbook.Sheets("Paris Keller").Select
                End If
            Next
        Exit Sub
   End If
Next

End Sub


Une tite question, je voudrais copié tout simplement une valeur d'une celulle dans une cellule se trouvant sur une autre feuille, mais je voudrais utiliser Cells pour pouvoir joué avec un "indice" ( ex ; i ) Car avec ceci :

Code:
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 30/06/2005 by Sacha '

'
    Range("A3").Select
    Selection.Copy
    Sheets("Sheet2").Select
    Range("A3").Select
    ActiveSheet.Paste
End Sub

Je ne peux pas utilisé " i ", " j " pour pouvoir incrémenté... :( je me trompe peut etre... merci de m'aider

Amicalement
 
Dernière édition:

gopo

XLDnaute Junior
Re : Problème d'incrémentation

Merci pour ta réponse ; j'ai trouvé ceci

Code:
Private Sub CommandButton1_Click()
Dim i As Integer
Dim j As Integer
Dim Variable1 As String

j = 1
    For i = 1 To 256
         If Cells(i, 11) = "Alfortville" Then
   Range(Cells(i, 11), Cells(i, 11)).Copy
        Sheets("PLAQUE SUD").Select
    Cells(1, j).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
        End If
        j = j + 1
    Next
End Sub

Le probleme ca colle mes cellules en (BV,1) mais surtout c'est qu'elle les colles dans la feuille ou elle copie alors que je voudrais copier sur la feuille(PLAQUE SUD).

Peux tu m'aider ?
 

Discussions similaires

Statistiques des forums

Discussions
312 764
Messages
2 091 859
Membres
105 079
dernier inscrit
Biscot_399