Condition avant copier coller

  • Initiateur de la discussion Initiateur de la discussion Jimrcl
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

Jimrcl

Guest
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
 
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
 
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
 
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 ... 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
917
Réponses
15
Affichages
793
Réponses
4
Affichages
738
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
757
Retour