Mauvais copier/coller des données (VBA)

Bonjour,

La Macro porte sur l'analyse des délais par rapport aux commandes et les catégories de pièces.

Lorsque la dernière partie s'effectue, je voudrais qu'il me laisse les délais calculés lorsque CDD = "Autres Catégories..."

Le problème est qu'il recopie cette donnée dans la colonne "Délais T0-RDD"...

je n'arrive pas à voir ce qu'il faut changer dans le code.

Voici l'image pour illustruer.

macro test excel

Et la partie du code ci-dessous :

'Modification RDD/CDD et Commentaires en fonction du délais T0-RDD

Dim g As Integer, ModT0RDD As Range, VarCDD1 As Range, ANL3 As Range

For g = 2 To 16500

Set ModT0RDD = Range("X" & g)
Set VarCDD1 = Range("AA" & g)
Set ANL3 = Range("Y" & g)

Select Case ModT0RDD

Case Is <= VarCDD1
Range("AA" & g).Select
Application.CutCopyMode = False
Selection.Copy
Range("X" & g).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
ANL3 = "RDD < CDD"

Case Is > 43000
ANL3 = "Pas de T0"

Case Is > VarCDD1
ANL3 = "RDD > CDD"

Case Is <= 0
ANL3 = "RDD <= T0"

End Select

Select Case VarCDD1

Case Is = "Autres catégories ou ESC à identifier"
ANL3 = "PN à identifier"

Case Is = "No CDD"
ANL3 = "Pas de CDD"

End Select

Next g

Cordialement,

Skydream

Salut.

Pourrais tu donner plus d'infos voir le fichier excel ?

La je comprend pas ton problème jrv pas a t'aider:

Dans le " Select case VarCDD1 "

si CDD = "autre catégorie...."

alors Analyses T0-RDD = PN à identifier

Donc rien n'agit sur la colonne X on est d'ccord ?

Si j'ai bien compris il y a des valeurs dans la colonne X et après éxécution du porgrammes les valeurs sont remplacées par "Autre catégorie" dans le cas ou colonne AA = "Autre catégorie" ?

Je suis désolé c'est très flou si tu peux reformuler ton problème

Bonjour

Pas sur d'avoir compris votre problème, mais si je comprends vous ne voulez pas recopier CDD dans X si l'on trouve Autre catégorie.. ??

Essayez comme ceci peut être

Dim g As Integer, ModT0RDD As Range, VarCDD1 As Range, ANL3 As Range

For g = 2 To 16500

    Set ModT0RDD = Range("X" & g)
    Set VarCDD1 = Range("AA" & g)
    Set ANL3 = Range("Y" & g)

    Select Case ModT0RDD

        Case Is <= VarCDD1
            Select Case VarCDD1
                Case Is = "Autres catégories ou ESC à identifier": ANL3 = "PN à identifier"
                Case Is = "No CDD": ANL3 = "Pas de CDD"
                Case Else
                    Range("AA" & g).Copy
                    Range("X" & g).PasteSpecial Paste:=xlPasteValues
                    ANL3 = "RDD < CDD"
            End Select

        Case Is > 43000: ANL3 = "Pas de T0"
        Case Is > VarCDD1: ANL3 = "RDD > CDD"
        Case Is <= 0: ANL3 = "RDD <= T0"

    End Select

Next g

Bonjour,

Voici un essai (je ne me suis pas trop attardé sur les conditions) mais j'ai le sentiment qu'il serait possible d'agir par simple formule...

Option base 1

Sub lamacro()

Dim g As Integer
Dim Donnees(16449,2)

For g = 2 To 16500
    Donnees(g, 1) = 0
    Select Case Range("X" & g)
        Case Is <= 0
            Donnees(g, 2) = "RDD <= T0"
        Case Is <= Range("AA" & g)
            Donnees(g, 1) = Range("AA" & g).value
            Donnees(g, 2) = "RDD < CDD"
        Case Is > 43000
            Donnees(g, 2) = "Pas de T0"
        Case Is > Range("AA" & g)
            Donnees(g, 2) = "RDD > CDD"
    End Select
    Select Case Range("AA" & g)
        Case Is = "Autres catégories ou ESC à identifier"
            Donnees(g, 2) = "PN à identifier"
        Case Is = "No CDD"
            Donnees(g, 2) = "Pas de CDD"
    End Select
Next g

range("X2:Y16500").value = Donnees

end sub

Aussi, je pense que vous devriez tant que possible éviter d'avoir des colonnes qui mélangent nombres et textes... Les données sont moins facilement exploitables et moins compréhensibles.

Edit : Bonjour Dan, je n'avais pas vu ta réponse avant de poster^^

Cdlt,

Merci Dan, ton code fonctionne en l'intégrant dans ma macro,

Merci à tous !

Rechercher des sujets similaires à "mauvais copier coller donnees vba"