Copier coller en fonction d'un critère

Bonjour,

Je lis bcp vos conseil et j'essaie de m'en inspirer dans mes codes. je vous en remercie. mais cette fois ci, j'ai besoin d'un petit coup de main concernant une code. J'ai beaucoup cherché sans succès.

Voici:

Dans le même classeur, mais dans des feuilles différentes, j’essaie de copier le contenu de certaines cellules pour les coller les une sous les autres dans une autre feuille

Par exemple si à la ligne 2, il y a le critère Oui dans la cellule A2, alors on copie le contenu des cellules B2, C2, D2, E2, F2, G2, H2 uniquement mais pas le reste des cellules de cette même ligne et ainsi de suite pour toutes les lignes.

J'ai essayé cela mais ça ne fonctionne pas ( merci pour votre aide) :

Sub Copie()

    Dim k As Integer, DerLig As Integer
    Application.ScreenUpdating = True

Sheets("Erreur").Activate
Range("A2").Activate

Do While ActiveCell <> ""
    If ActiveCell = "OUI" Then
        k = k + 1
         Range(ActiveCell, ActiveCell.Offset(0, 5)).Copy
        Sheets("Final").Paste
        Application.CutCopyMode = True

    End If
    ActiveCell.Offset(1, 0).Activate

Loop

End Sub

Salut Nanouk et bienvenue sur le Forum,

Dans le fichier ci-joint, une correction de ton code en suivant plus ou moins "ta philosophie" et un deuxième code simplifié.

Cordialement.

NB : Une prochaine fois fournis-nous un bout de fichier

383nanouk-v1.zip (10.53 Ko)

Encore merci pour votre aide et pour votre rapidité.

C'est gentil de votre part de nous accorder de votre temps pour nous aider.

j'ai copié le code sur ma feuille mais le debogeur me signal une erreur sur la ligne (dans les deux codes):

Sheets("Final").Select

A quoi cela peut il être dû?

Probablement que la feuille "Final" n'existe pas ou n'est pas orthographié exactement ainsi.

Pourtant dans ton code, tu as bien une feuille nommée de cette manière

Si ce n'est pas ça, il faut absolument me fournir ton fichier, éventuellement après y avoir modifié les données sensibles. Si tu laisses 5 à 10 lignes représentatives, ça suffit.

Amicalement.

Bonsoir. Désolée pour la réponse tradive j'ai essayé de chercher plusieurs solutions. J'ai changé les noms de feuilles du coups

En fait j'ai plusieurs problèmes :

  • Je souhaiterais que les données des colonnes B à J soient copiées collées
  • Je souhaiterais que les données copiées soient collées à partir de la 2e lignes car j'ai des entêtes.
  • Que se soit les valeurs qui soient collés et non pas les formules.

Je te remercie de ton aide.


la pièce jointe était trop lourde

Dans la feuille Imputation, le contenu est sous forme de formule, mais je souhaiterais que seule la valeur apparaisse

90classeur1.xlsx (58.60 Ko)

Salut,

Tu changes de fichier, tu supprimes les codes.... tu nous compliques la vie, quoi

Peux-tu placer sur ton fil un fichier représentatif de ton problème avec le code qui te crée des soucis ? Je n'ai pas trop l'envie de recommencer à zéro à chaque fois

Cordialement.

en fait j'ai essayé de mettre en pièce joint le fichier mais il est trop lourd apparement. je vais essayé de le remettre en supprimant ce qui est inutile. Mais il fait toujours 2 mo. est ce que je peux l'envoyer par un autre moyen?

Ouf voilà après de multiples suppressions et essaie j'arrive à mettre le fichier. J'espère que vous pourrais m'aider merci

117classeur1.xlsm (18.32 Ko)

Eventuellement par http://www.cjoint.com/ Autrement - après que tu aies essayé cette solution et sur ta demande - je te fournis par message privé une adresse électronique à laquelle tu pourrais m'envoyer ton fichier.

Cordialement.

c joint

Voilà le lien

j'ai mis le lien mais, il n'apparait pas dans la discussion... Est ce que je peux vous l'envoyer via une adresse mail?

le code se trouve dans le module 4

Re,

Tout d’abord je dois te dire qu’il ne faut pas trop s’impatienter et placer 2 ou 3 messages de suite ; tu as affaire à des amateurs qui t’offrent leur temps gratuitement et il faut bien le leur laisser (le temps)

Ensuite j’espère que tu comprennes combien c’est important d’avoir le fichier réel à disposition. Rien qu’un exemple : je ne comprenais pas pourquoi tu sélectionnais la feuille « Erreur » au début de ton code et maintenant je comprends que ton bouton est placé sur une autre feuille. Simple exemple, mais combien parlant.

Puis je me suis cassé la tête à créer un code simplifié sur la base de ton premier code fourni sans fichier et je remarque maintenant que tu n’es n’as absolument pas fait usage. Que de temps perdu (Gratuit, mais perdu)

Le code que tu me proposes de corriger est bourré d’erreurs. C’est un peu long à t’expliquer tout ce que j’ai corrigé ; par contre je reste à ta disposition si tu as vraiment des questions précises au sujet de ce qui a été modifié.

J’espère avoir bien compris tes besoins. Si jamais reviens à la charge. Si tu ne modifies plus ton fichier, ce n’est normalement plus la peine de le fournir à nouveau à l’avenir.

Mon ancien code passait en revue toutes les cellules de la colonne A de la feuille « Erreur » (selon ton premier code ) et contrôlait si elles comportaient les textes « OUI », « Non » ou si elles étaient vides. Selon ton fichier réel, ta feuille « Imputation » (tiens, le nom a changé !) ne comporte pas spécialement de texte « OUI » ou « Non », mais soit elles comportent « OUI », soit elles sont vides. Je passe donc en revue la colonne B (Titre : Commande ») de la feuille « Imputation » et contrôle – tant que ses cellules ne sont pas vides – si la cellule correspondante de la colonne A est vide ou non. Est-ce que ceci te convient, passons-nous ainsi toutes les lignes nécessaires en revue ???

Attention : Le code est sensible à la casse : Oui <> OUI !!!!

Pour l’instant, si tu lances plusieurs fois le code par l’intermédiaire du bouton « Copier » placé sur ta feuille « Menu », les données viennent se rajouter plusieurs fois sur la feuille « Final ». Faudrait-il vider la feuille « Final » en début de code ?

Sur quelle feuille voudrais-tu que ton fichier se trouve en fin de code ?

A te relire.

Bonsoir,

je te remercie pour ton aide. en fait j'ai eu plusieurs problèmes lors des réponses c'est la raison pour laquelle il y a eu plusieurs messages postés. encore désolée.

J'ai changé le nom des feuilles car comme je l'ai indiqué, le code ne fonctionnait pas donc j'ai décidé de modifier afin que ça fonctionne.

Dans la colonne A, j'ai une liste déroulante qui affiche soit OUI, soit NON, mais il vrai que la personne peut oublier de sélectionner une de ces possibilité. je regarde le code et te retourne une réponse. En tout cas je te remercie énormément pour le temps que tu m'as accordé et j'ai conscience que tu fais cela bénévolement. encore merci

Je te remercie c'est exactement ça que je voulais.

Par contre est il possible de faire en sorte que les anciennes données soient effacées à chaque fois qu'on appuie sur le bouton copier? Merci encore et encore désolée pour les désagréments

Salut,

Prend l'habitude de te laisser le temps de répondre et de ne pas fournir tes informations d'une manière saucissonnées C'est moins pénible à lire et te ne prends pas le risque que l'on ne soit plus informés de ta deuxième intervention (au cas où on ne serait plus venu visiter ce sujet en étant connecté après ta première réponse).

Afin de vider à chaque fois la feuille "Final", tu peux ajouter cette ligne de code

Sheets("Final").Range("A2:I" & Rows.Count).ClearContents

entre les deux lignes ci-dessous

Application.ScreenUpdating = False

'LIGNE CI-DESSUS A AJOUTER

Sheets("Imputation").Activate

Cordialement.

Bonjour,

J'ai une question par rapport à ce copier coller. Je bosse sur un doc similaire. Mais cette fois si le critère a changé

Est il possible d'avoir comme critère : copier si <> "" et <>"0"?

Merci d'avance de votre réponse.

Salut,

Ce serait sympa, lorsque tu as reçu une réponse, de dire un petit merci avant d'avoir besoin de poser une nouvelle question

Au sujet de cette dernière question, ma réponse est "oui, c'est possible". Par contre si tu as besoin d'aide pour mettre en place quoi que ce soit, tu dois être plus précis. Quelle condition veux-tu remplacer par celle proposée nouvellement ? S'agit-il de

If ActiveCell.Offset(0, -1) = "OUI" Then ? Mais dans la colonne A de la feuille "Imputation", tu n'as que des OUI, des NON ou des cellules vides.

A te relire.

Merci Yvouille pour ton aide.

Du coup, j'ai plutôt utilisé l'option de filtrer la feuille plutôt que de copier coller. Mais j'ai quand même réussi à fair ele copier coller en mettant différents.

Encore merci

Rechercher des sujets similaires à "copier coller fonction critere"