Copier cellules vers autre feuille sous condition

EXC107545b

XLDnaute Nouveau
Bonjour à tous

J'aimerais copier certaines cellules d'un tableau d'une feuille A vers le tableau d'une feuille B sous la condition qu'une certaine colonne contienne la valeur "OUI".

Pour la condtion je ne sais pas comment faire. Je ne sais pas ou intégrer le "Si"

Mais pour la copie des cellules j'avais trouvé ce code :

Code:
Sub Recopie()

Dim Source As String
Dim Cible As String
Dim LigneEncours As Long
'Chargement du nom des feuilles origine et destination
Cible = "Prevision Devis Envoyé1"
Source = "Prevision Affaire"
'Calcul de la ligne courante
LigneEncours = Worksheets(Cible).Range("B" & Rows.Count).End(xlUp).Row + 1
'Copie des valeurs
With Worksheets(Cible)
 
Worksheets(Source).Range("B3").Copy .Range("B" & LigneEncours)
Worksheets(Source).Range("C3").Copy .Range("C" & LigneEncours)
Worksheets(Source).Range("D3").Copy .Range("F" & LigneEncours)
Worksheets(Source).Range("F3").Copy .Range("H" & LigneEncours)
Worksheets(Source).Range("I3").Copy .Range("I" & LigneEncours)
Worksheets(Source).Range("J3").Copy .Range("J" & LigneEncours)
Worksheets(Source).Range("K3").Copy .Range("K" & LigneEncours)
Worksheets(Source).Range("L3").Copy .Range("L" & LigneEncours)
Worksheets(Source).Range("M3").Copy .Range("M" & LigneEncours)
Worksheets(Source).Range("N3").Copy .Range("N" & LigneEncours)
Worksheets(Source).Range("O3").Copy .Range("O" & LigneEncours)

End With
End Sub

J'ai 2 problèmes avec ce code :

- Les cellules sont transférées à la fin de mon tableau et pas dedans (donc ligne 100)
- Seul la première ligne de mon tableau feuille A est transférée.

Voila si vous pouviez m'aider sur ces 3 points, je vous en serais reconnaissant.

Je vous joins un fichier pour faciliter la comprehension de ma demande.

Amicalement,
 

Pièces jointes

  • FICHIER EX.xlsx
    21.6 KB · Affichages: 58

EXC107545b

XLDnaute Nouveau
Re : Copier cellules vers autre feuille sous condition

Bonjour Papou et merci pour ton aide !

C'est presque presque bon !

Juste dans ton cas, cela recopie la ligne entière, hors dans mon cas, je dois séléctionner que certaines cellules de chaque lignes.

Je suppose qu'il faut adapter cette partie ? (PS : ma feuille 2 s'appelle feuil1)

Code:
.Rows(i).Copy Feuil1.Cells(fin1, 1)

Et sinon dans le fichier que tu m'as renvoyé les cellules sont bien transférées dans le tableau, mais lors que j'adapte le code à mon fichier, cela ne fonctionne plus. Elle sont envoyés ligne 101,102 etc.

Code:
Feuil1.Range("B3:AA100").ClearContents

Je l'ai adapté aux dimension de mon tableau : =$B$2:$AA$100 but nothing happened
Les 2 tableaux doivent ils faire la même taille ?

En tout cas merci beaucoup de ton aide ! Je touche presque au but de ma demande grace à toi !

Amicalement,
 

JBARBE

XLDnaute Barbatruc
Re : Copier cellules vers autre feuille sous condition

Bonjour à tous,

La copie semble faisable dans la mesure où les colonnes C-F-H de FRITES ne sont pas identiques !

Ce qui n'est pas le cas de FINDUSSE qui se différencie par la Colonne C qui est différentes des colonnes F-H !

Bonne journée et bon courage :

PS : excuse moi Papou mais la colonne C et identique pour les colonnes F et H dans son fichier !
 
Dernière édition:

EXC107545b

XLDnaute Nouveau
Re : Copier cellules vers autre feuille sous condition

Re tout le monde,

C'est plus compliqué que ce que je pensais.

- Les données sont copiées après le tableau (ligne 101,102,103), je n'arrive pas à les faire rentrer dedans.
- En effet, j'ai du mal faire mon fichier exemple, les colonnes C-F-H ne seront pas identiques.
- Je dois pouvoir saisir manuellement des données dans les lignes copiées, hors elles se mettent à jour et effacent les nouvelles écritures lorsque je recharge la page.

Je suis vraiment navré, je me suis sans doute mal exprimé.

Je vous relink un fichier peut être moins confus.

Merci de votre patience !
 

Pièces jointes

  • FICHER EX(2).xlsx
    18.3 KB · Affichages: 46

Paritec

XLDnaute Barbatruc
Re : Copier cellules vers autre feuille sous condition

Bonsoir JBarbe:eek: EXC107 le forum
bon alors je n'étais pas là et je lis les réponses
bref en fait tu veux pouvoir faire quoi exactement?
il était question de copier des cellules si la colonne ?? avait oui, je te l'ai fait.
maintenant tu veux conserver les données dans le tableau donc il faut pratiquer autrement.
Mais si tu nous donnais toutes tes exigences en une seule fois ce serait tout de même plus simple
Alors j'attends ta réponse avec tout ce qu'il faut faire, et je modifierai en conséquence
pour les copies maintenant les cellules sont bien copiées ou tu le voulais?
a+
papou:eek:
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : Copier cellules vers autre feuille sous condition

Re Bonsoir JBarbe:eek: EXC107 le forum,
bon voilà avec je pense une approche de ce que tu veux si j'ai compris
mais dans ce cas on il faut noter ce que l'on a déjà transféré et ne plus effacer la feuil 2
bref testes et redis moi si c'est OK (sur mon fichier)
a+
Papou:eek:
 

Pièces jointes

  • EXC107 V3.xlsm
    26.1 KB · Affichages: 54

EXC107545b

XLDnaute Nouveau
Re : Copier cellules vers autre feuille sous condition

Bonjour à tous !

Désolé je n'ai pas pu répondre plus tôt.

Donc au final j'ai réussi à adapter ton code à mon cas :

Code:
Sub copier()
    Dim i&, fin&, fin1, aa, n&, a
    With Feuil4
        fin = .Range("B" & Rows.Count).End(xlUp).Row
        For i = 3 To fin
            If .Cells(i, 7) = "OUI" And .Cells(i, 20) = "" Then
            n = 2
                fin1 = Feuil1.Range("B" & Rows.Count).End(xlUp).Row + 1
                For Each a In Array(2, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15)
                If a = 6 Then n = 6
                If a = 8 Then n = 4
                If a = 9 Then n = 9
                    Feuil1.Cells(fin1, n) = .Cells(i, a): n = n + 1
                Next a
                .Cells(i, 20) = "Transféré"
            End If
        Next i
    End With
End Sub

Et avec "Transféré", cela ne bouge plus, donc c'est parfait !

Seul un petit problème subsiste : les lignes copiées sont collées hors du tableau (qui est vide), ligne 101,102,103 etc.
J'aimerais que comme dans l'exemple, elles soient collées dans mon tableau l 2,3,4 etc.

Bravo pour ton ingéniosité, et merci encore de ta patience !

Amicalement,
 

Paritec

XLDnaute Barbatruc
Re : Copier cellules vers autre feuille sous condition

Re Bonjour EXC107 le forum
bon alors pour ton histoire de ligne 101, tu sélectionnes ton tableau et tu le convertis en plage et c'est fini
dans la feuille 1 et la feuille 2
Pour l'adaptation du code je ne vois pas ce que tu as adapté mais bon !!!
a+
Papou:eek:
 

EXC107545b

XLDnaute Nouveau
Re : Copier cellules vers autre feuille sous condition

Re-bonjour !

Bon finalement, d'un point tri etc, et des macros que j'avais déja faites, il faut que je puisse garder les tableaux. Cela est il possible ?

Je pensais si non, à ajouter dans la macro en début de code, une convertion en plage, pour que le transfert marche. Puis une fois le transfert fait, la recréation automatique du tableau.

Qu'en pensez vous?

Amicalement,
 

Paritec

XLDnaute Barbatruc
Re : Copier cellules vers autre feuille sous condition

Bonjour EXC107 le forum
bah moi j'en pense que si c'est pour une question de tri je ne vois pas l'intérêt d'un tableau mais comme je ne sais pas ce que tu en fais ni comment tu l'utilises??
Si c'est pour des mises en page et des tris, tu peux parfaitement rester avec des plages et non des tableaux
a te relire
a+
papou:eek:
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 071
Messages
2 085 049
Membres
102 766
dernier inscrit
Awiix