Copier Coller avec condition

Ibrahimi

XLDnaute Nouveau
Bonjour,

j'aimerais que le copier coller ne se fasse pas en face de "55367-50"
c'est surtout les 2 derniers chiffres que je veux qu'il fasse parti de la condition
car le copier coller dois ce faire dans tout ce qui est en-dessous de =<49
j'ai essaye de le faire avec ce code ci mais ça fonctionne pas il copie toujours en fonction des lignes qu'il y a est pas en fonction de la condition


voici une partie du code et tout le reste du code est dans le fichier
Il faut lancer la macro pour voir ce que je copie pour ceux qu'il font regarder le fichier
(copier dans la colonne G de la feuil2 et coller dans la feuil1 colonne K)

VB:
Dim Ligne As Long
If Right(Sheets("Feuil1").Range("E" & Rows.Count).End(xlUp).Value, 2) <= 49 Then
Ligne = Worksheets("Feuil1").Cells(Rows.Count, 5).End(xlUp).Row
Sheets("Feuil2").Range("G" & Rows.Count).End(xlUp).Copy
Sheets("Feuil1").Range("K8:K" & Ligne).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End If


Merci.
 

Pièces jointes

  • Test.xlsm
    24.3 KB · Affichages: 3

Iznogood1

XLDnaute Impliqué
Bonjour,

si je peux me permettre, la question est posée est difficile à comprendre.

Une explication claire et détaillée de :
  • la situation de départ
  • les actions à entreprendre
  • les résultats attendus
et une orthographe soignée permettrait aux contributeurs d'examiner le problème plus aisément.


Après un rapide examen, je comprends que des valeurs calculées en feuil2 doivent être recopiées en feuil1 à la condition que la référence en feuil1 (colonne E) se termine par un nombre < 50.
Mais que faut-il copier ?
Il y a 6 lignes de données sources, et 4lignes dans la zone cible - dont une qui sera ignorée car le référence est >= 50...
 

Ibrahimi

XLDnaute Nouveau
J'ai essayé avec ce nouveau code mais j'ai une erreur "d'incompatibilité de type" à la ligne 12
VB:
Dim Ligne As Long
 Dim PlageG
 Dim PlageE As Range
    
    PlageG = Sheets("Feuil2").Range("G" & Rows.Count).End(xlUp).Copy
    With Worksheets("Feuil1")
        DerLig = .Range("E" & Rows.Count).End(xlUp).Row
        Set PlageE = .Range("E8:E" & DerLig)
        Fin = PlageE.Rows.Count
        For n = 1 To Fin
            D = Split(PlageE(n, 1), "-")
            If CLng(D(1)) < 50 And PlageG(n, 1) <> "" Then
                .Range("K" & 7 + n) = PlageG(n, 1)
            End If
        Next n
        .Range("L8:L" & .Cells(.Rows.Count, 11).End(xlUp).Row).FormulaR1C1 = "=(RC[-1]/(COUNTA(R8C5:R20C5)))"
        Selection.NumberFormat = "0.00"
    End With
End Sub
 

Statistiques des forums

Discussions
312 213
Messages
2 086 307
Membres
103 174
dernier inscrit
OBUTT