Copier-Coller Valeur avec une condition

Bonjour à tous,

Je bloque sur un détail de la macro suivante :

Sub BASCULE()

Dim OS As Worksheet

Dim OD As Worksheet

Dim CEL As Range

Dim DEST As Range

ActiveCell.Select

Set OS = Worksheets("BON BLEU EN ATTENTE")

Set OD = Worksheets("reception")

For Each CEL In OS.Range("I2:I" & OS.Cells(Application.Rows.Count, 9).End(xlUp).Row)

If CEL.Value = "RECEPT" Then

Set DEST = OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0)

OS.Cells(CEL.Row, 1).Copy DEST

OS.Cells(CEL.Row, 1).Copy DEST.Offset(0, 1)

OS.Cells(CEL.Row, 1).Copy DEST.Offset(0, 2)

OS.Cells(CEL.Row, 1).Copy DEST.Offset(0, 3)

OS.Cells(CEL.Row, 5).Copy DEST.Offset(0, 4)

OS.Cells(CEL.Row, 6).Copy DEST.Offset(0, 5)

OS.Cells(CEL.Row, 7).Copy DEST.Offset(0, 6)

OS.Cells(CEL.Row, 8).Copy DEST.Offset(0, 7)

OS.Cells(CEL.Row, 9).Copy DEST.Offset(0, 8)

OS.Cells(CEL.Row, 10).Copy DEST.Offset(0, 9)

OS.Cells(CEL.Row, 11).Copy DEST.Offset(0, 10)

OS.Cells(CEL.Row, 12).Copy DEST.Offset(0, 11)

OS.Cells(CEL.Row, 13).Copy DEST.Offset(0, 12)

End If

Next CEL

End Sub

Les cellules de l'onglet "BON BLEU EN ATTENTE" sont des formules.

Et je souhaiterai que la macro me les basculent sur l'onglet "reception" en valeur et non en formule.

Merci d'avance pour votre aide et bonne journée.

Cordialement,

bonjour

à quoi sert ta macro ? le fichier ? commandes et bons de réceptions ?

selon moi, on ne doit jamais "copier" de données, ni au clavier, ni par macro

souvent de simples "=" suffisent

joins un peeeeeeetit fichier exemple avec le résultat attendu

à te relire

amitiés

Bonjour jmd,

Le fichier sert à suivre les commandes non réceptionnées.

En inscrivant la date de réception en colonne H, "RECEPT" apparaît en I.

A partir de là, il me faut la macro qui copie-colle valeur la ligne de la commande réceptionnée sur l'onglet réception.

A ta disposition si tu as des questions.

Bonjour,

A tester !?

Cdlt.

Public Sub BASCULE()
Dim OS As Worksheet, OD As Worksheet
Dim rng As Range, rCell As Range, Cell As Range
Dim lRow As Long, lastRow As Long

    Set OS = Worksheets("BON BLEU EN ATTENTE")
    Set OD = Worksheets("reception")

    With OS
        lastRow = .Cells(.Rows.Count, 9).End(xlUp).Row
        Set rng = .Cells(2, 9).Resize(lastRow - 1)
    End With

    Set rCell = OD.Cells(Rows.Count, 1).End(xlUp).Row + 1

    For Each Cell In rng
        If UCase(Cell.Value) = "RECEPT" Then
            rCell.Resize(, 13).Value = Cell.Resize(, 13).Value
            Set rCell = rCell.Offset(1)
        End If
    Next Cell

End Sub

re à tous

salut Jean-Eric

je gère des tonnes de fichiers de ce genre (liste avec date prévue, et date réelle qui sert de validation: mon arme = le filtre d'Excel.

on filtre sur la colonne DateDeRéception, si vide. Tout simplement.

si on veut une vue un peu modifiée, on crée un TCD, lequel sera filtré lui aussi selon les besoins

dans ton cas, en plus du filtre ci-dessus, on filtrera chaque semaine sur DatePrévue pour voir les réceptions attendue de la semaine.

simple non ?

le petit plus, très simple : une MFC si Dateprévue>AUJOURDHUI et date réception = vide mettra la ligne en rouge

amitiés

Salut Jean-Eric,

Merci de ton retour.

Cependant, j'ai le message d'erreur 424 "Objets Requis" sur la ligne

Set rCell = OD.Cells(Rows.Count, 1).End(xlUp).Row + 1

Cordialement,

Rechercher des sujets similaires à "copier coller valeur condition"