XL 2010 Copie de lignes dans différentes feuilles

  • Initiateur de la discussion Initiateur de la discussion ch_claude
  • 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 !

Bonjour Ch_claude,
Pourriez vous nus éclairer sur ce que vous voulez faire avec :
VB:
.Range("BASE").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("param!c1:c2"), CopyToRange:=Range("BASE!A1:P1"), Unique:=False
Sachant que param!c1 est vide et que C2 vaut FAUX puisque lecture_all_simple!J2 est vide aussi.
 
Bonjour,
Je crois que j'ai compris où se situe le problème.
Dans la feuille paramètre en C2, cela pointe sur la mauvaise colonne. Cela devrait être ceci :
=ET(lecture_all_simple!O2>=Param!$B$1;lecture_all_simple!O2<=Param!$B$2)
Le O remplace le J. Mais j'ai beau changé, le J revient systématiquement.
Avez-vous une idée ?
 
Normal, puisque vous modifiez la formule par macro :
VB:
Sheets("Param").Select
    ActiveSheet.Unprotect
    Range("C2").Select
    ActiveCell.FormulaR1C1 = _
        "=AND(lecture_all_simple!RC[7]>=Param!R1C2,lecture_all_simple!RC[7]<=Param!R2C2)"
Pour atteindre la col O, essayez avec RC[12].
 
Re,
Dans la ligne :
VB:
.Range("BASE").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("param!c1:c2"), CopyToRange:=Range("BASE!A1:P1"), Unique:=False
Le criteriarange attendu est le critère de filtrage, or en param!c1:c2 vous avez VRAI ou FAUX
C'est à ce niveau que ça bloque.
En lien un essai avec une macro simple Dispatche, à voir s'il vous convient :
https://www.cjoint.com/c/JFrmd6pObTY

A noter que certains codes postaux se répètent, je ne sais pas si c'est normal.
 
Oh, vous savez je suis un peu bourrin. Je vois 58 colonnes, je copie toute la ligne. 🙂
Remplacez le code par :
VB:
Sub Dispatche()
Application.ScreenUpdating = False
NbLignes = Application.CountIf(Sheets("lecture_all_simple").Range("O:O"), ">0")
For i = 2 To NbLignes
    Codpost = Sheets("lecture_all_simple").Range("O" & i)
    For Col = 4 To 8
        Sheets("Param").Activate
        If Application.CountIf(Sheets("Param").Range(Cells(3, Col), Cells(1000, Col)), Codpost) > 0 Then
            NameSheet = Sheets("Param").Cells(1, Col)
            Sheets("lecture_all_simple").Range("A" & i & ":P" & i).Copy
            Sheets(NameSheet).Range("A2:P2").PasteSpecial
            Sheets(NameSheet).Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            Exit For
        End If
    Next Col
Next i
Sheets("lecture_all_simple").Activate
End Sub
 
En fait, dans la feuille "lecture_all_simple", il y toutes les colonnes mais il n'y a que certaines d'entres qui doivent être copiées dans les feuilles EST, Lausanne, Nord, Ouest, Nyon, Venoge selon les colonnes se trouvant dans la feuille BASE.
 
Bonjour,
J'ai trouvé quelques erreurs mais, désolé, qui sont dûes à une mauvaise indication de ma part. En fait, pour déplacer les lignes dans les différentes feuilles, il faut prendre le Code_Postal_formtion et non pas le Code_Postal_Contrat.
Après c'est plus de la cosmétique, Les lignes importées sont en caractère gras et il y a la ligne No 2 qui est vide.
En regardant le code, j'imagine que les chiffres dans l'IndexW correspondent aux colonnes. Comment savoir à quelle colonnes correspondent ces chiffres ?
 
- 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

Discussions similaires

Réponses
5
Affichages
377
Retour