VBA "copier/Coller" en fonction d'une condition

Bonjour à toutes, et à tous.

Je débute en programmation VBA sous excel (j'ai office 2010)

Je prends plaisir à consulter les cours VBA, et j'arrive à m'en sortir avec des commandes simples comme effacement de contenu ou :

Sub CopierColler()

Sheets("Résultat").Range("G7") = Sheets("Résultat").Range("G5")

End Sub

Je suis en train de finaliser mon fichier, il ne me manque plus qu'une chose, c'est une commande à cliquer en langage VBA qui va copier/coller le contenu de cellules de la feuille 1 vers une feuille 2 en fonction d'une condition situé sur la feuille 2

Je nage avec RECHERCHEV, j'ai que des erreurs de syntaxe

Je m'explique : Sur une feuille nommé "résultat" j'ai en F15,F16 des dates (exemple : 15/11/2013, 16/11/2013)

Les cellules B15:E16 de la feuille "Résultat" sont à copier sur la feuille "outils de calcul" en colonne B à E à ligne on l'on trouve en colonne K la date du 15/11/2013 ; renvoi à la valeur Sheets("Résultat").Range("F15")

Cette commande me permettrait de masquer la feuille outils de calcul.

Merci d'avance pour votre aide conseils et astuces.

Amicalement

Gilles

Bonjour et bienvenue

Tes explications ne sont pas assez claires. Merci de joindre un fichier avec le résultat attendu.

Ok

Dans cet exemple, les cellules roses B15:E16 de résultat sont à copier via une commande en B28:E29 c'est à dire à la ligne ou l'on retrouve la date du 01/01/2013 que l'on n'a renseigné en "selection G11"

un peu comme la fonction SOMME.SI

Merci

Ok vu la fonction "pièce jointe du forum"

Dans ce fichier je suis plus précis

Je souhaite copier/coller les cellules de Feuil1 B16:E16 et D17 en Feuil2 aux même lignes ou l'on retrouve la condition de date

Feuil1 F16 en Feuil2 colonne F

Merci

J'ai repris une macro que j'ai adapté au truc

Les valeurs arrivent à se copier dans la feuille outils de calcul

mais au lieu de se copier dans cet exemple en B39:E39,D40 (comme références avec les deux dates)

Elles vont en F79:I79,H80

Je merdouille quelque part

Gilles

Il y a du mieux, j'arrive à copier une cellule.

Celle de la colonne E

Mais si je veux sélectionner de B à E, çà ne marche pas.

Sub envoyerdonnées()

For n = 16 To 17

d = Range("F" & n).Value

dlg = Sheets("Outils de calcul").Range("F" & Rows.Count).End(xlUp).Row

For t = 1 To dlg

If Sheets("Outils de calcul").Range("F" & t) = d Then Sheets("Outils de calcul").Range("E" & t).Value = Sheets("Feuil1").Range("E" & n).Value

Next t

Next n

End Sub

Impossible de mettre :

If Sheets("Outils de calcul").Range("F" & t) = d Then Sheets("Outils de calcul").Range("B:E" & t).Value = Sheets("Feuil1").Range("B:E" & n).Value

Merci d'avance de votre appui.

Gilles

19exemple.xlsm (21.92 Ko)

Trouvé, belle erreur de novice

Par contre comment exclure B17:C17 et E17

Sub envoyerdonnées()

For n = 16 To 17

d = Range("F" & n).Value

dlg = Sheets("Outils de calcul").Range("F" & Rows.Count).End(xlUp).Row

For t = 1 To dlg

If Sheets("Outils de calcul").Range("F" & t) = d Then Sheets("Outils de calcul").Range("E" & t).Value = Sheets("Feuil1").Range("E" & n).Value
If Sheets("Outils de calcul").Range("F" & t) = d Then Sheets("Outils de calcul").Range("D" & t).Value = Sheets("Feuil1").Range("D" & n).Value
If Sheets("Outils de calcul").Range("F" & t) = d Then Sheets("Outils de calcul").Range("C" & t).Value = Sheets("Feuil1").Range("C" & n).Value
If Sheets("Outils de calcul").Range("F" & t) = d Then Sheets("Outils de calcul").Range("B" & t).Value = Sheets("Feuil1").Range("B" & n).Value

Next t

Next n

End Sub

Bonjour

Pas évident de savoir ce qu'il faut faire

Copier les cases parce qu'elles sont en couleur ou parce qu'elles contiennent une valeur ?

C'est toujours les lignes 16 et 17 ?

Un essai

Bonjour,

c'est parcequ'elles contiennent une valeur.

La formule que j'ai fonctionne partiellement.

J'arrive à copier mes valeurs de Feuil1 vers Feuil2

Mais ce qui me manque, c'est de ne rien faire si la cellule est vide en Feuil1

Exemple ci-dessous. Avec E52:E54 (Dans ces cellules il y a les montants à copier) dans F52:F54 (des dates)

Si F53 F54 sont vide, et que je veux copier E52 çà bug.

Mon erreur d'execution survient uniquement si F52:F54 sont vides, E52:E54 ne sont pas concernés par l'erreur si vide.

Ou je dois mettre si F53:F54 est vide, alors ne rien faire.

Merci de votre appui.

Sub envoyerdonnées()

For n = 52 To 54

d = Range("F" & n).Value

dlg = Sheets("Feuil2").Range("K" & Rows.Count).End(xlUp).Row

For t = 1 To dlg

If Sheets("Feuil2").Range("K" & t) = d Then Sheets("Feuil2").Range("E" & t).Value = Sheets("Feuil1").Range("E" & n).Value

Next t

Next n

End Sub
Rechercher des sujets similaires à "vba copier coller fonction condition"