Condition avant copier coller

Jimrcl

XLDnaute Occasionnel
Bjr le forum,
je viens de mordre dans quelque chose d'apparement mou mais en réalité je m'y casse les dents.
je souhaite copier une plage de cellule a 2 condition
çà marche la premier itération mais pas les suivantes.
vraiment bizarre???
quelqu'un voit il ce que j'ai fait de mal?

Code:
For i = 2 To L
With WSLB
    If Cells(i, 4).Value = SsFam Then
        If Cells(i, 5).Value = SsFamSs Then
        .Range(.Cells(i, 1), .Cells(i, 35)).Copy
        With WSR
        '.Activate
        .Range(.Cells(C, 1), .Cells(C, 35)).PasteSpecial xlValues
        C = C + 1
        End With
        '.Activate
        End If
    End If
    Application.CutCopyMode = False
End With
Next

Merci
je mets le fichier en post
 

deudecos

XLDnaute Impliqué
Salut Jimrcl, le forum,

Pas de fichier joint et une question en plus...

Comment est pris en compte L ?
Je crois que tu devrais ou mettre ton code en entier, ou joindre ton fichier, et pour ce faire il faut qu'il soit Zippe et non pas en RAR, et qu'il n'ai pas ni accent ni espace dans son libelle et qu'en plus il fasse moins de 50 ko.

Bonne soiree

Olivier
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir Jimrcl, bonsoir Olivier,
bonsoir à toutes et à tous :)

Même sans connaître le contenu de ton classeur, je me pose des questions en lisant ton code :

For i = 2 To L
  With WSLB
    If Cells(i, 4).Value = SsFam Then
      If Cells(i, 5).Value = SsFamSs Then
        .Range(.Cells(i, 1), .Cells(i, 35)).Copy
        With WSR
          .Range(.Cells(C, 1), .Cells(C, 35)).PasteSpecial xlValues
          C = C + 1
        End With
      End If
    End If
    Application.CutCopyMode = False
  End With
Next

1.- Tu souhaites travailler sur la feuille de calcul WSR, mais les 2 cellules soulignées sont celles de la feuille active : si c'est WSLB, ça peut aller mais alors le With WSLB n'a pas de raison d'être.

2.- Je me méfie toujours lorsque j'utilise With, surtout si les objets sont de même type.

Je te propose une solution (en fonction de ce que je vois comme code) qui, si elle ne résoud pas ton problème, t'aidera peut-être à y voir plus clair :

For i = 2 To L
  With WSLB
    If .Cells(i, 4) = SsFam And .Cells(i, 5) = SsFamSs Then
      .Range(.Cells(i, 1), .Cells(i, 35)).Copy
      WSR.Range(WSR.Cells(C, 1), WSR.Cells(C, 35)) _
                    .PasteSpecial xlValues
      C = C + 1
    End If
  End With
Next
Application.CutCopyMode = False

A+ ;)

Message édité par: Charly2, à: 25/04/2006 01:36
 

Jimrcl

XLDnaute Occasionnel
Merci Charly,deudecos
j'étais à l'ouest total...
ton code est beaucoup plus simple que le mien et surtout il marche.
Je me suis borné sur le fait qu'il marchait une fois mais en fait il ne faisait pas de comparaison donc il marchait pas.
Merci de m'avoir débloqué, je suis reparti ... :)
 

Discussions similaires

Réponses
6
Affichages
286

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet