Copier avec condition VBA - Excel

A voir également:Copier avec condition vba[VBA] Excel- Copier cellulesous condition ✓ - Forum - VB / VBA Copier/Coller en VBA avec condition - Forum - Excel Excel/VBA: insérer et copier lignes condition - Forum - Excel Copier une feuille vba - Conseils pratiques - Visual Basic Copier une ligne vba ✓ - Forum - Excel

Bonjour à tous,

Je vous solicite pour un conseil (une correction de formule je pense). Je suis en train de coder un fichier en VBA et je pense que je ne compose pas mon code correctement.

Je voudrais que toutes les valeurs de ma colonne X qui ne sont pas dans ma colonne AC egalement remontent sur une feuille à part.

J'ai cherché sur le forum et j'ai esayé deux méthodes ( Autofilter et range count), mais aucune ne marche .


Pourriez-vous m'aider?

merci

Forum

A voir également:Copier avec condition vba[VBA] Excel- Copier cellulesous condition ✓ - Forum - VB / VBA Copier/Coller en VBA avec condition - Forum - Excel Excel/VBA: insérer et copier lignes condition - Forum - Excel Copier une feuille vba - Conseils pratiques - Visual Basic Copier une ligne vba ✓ - Forum - Excel

Web: www.shapebootstrap.net

6 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour Lucieaup

Une possibilité :
Dim Ligne As Long Ligne = Sheets("Feuil1"). Columns(24).Find("*", , , , xlByColumns, xlPrevious).Row  ' derniere ligne remplie col X For n= 2 to Ligne ' boucle sur lignes depuis la 2eme jusqu'à la dernière If Sheets("Feuil1").range("X" & n) <> Sheets("Feuil1").range("AC" & n) then '' si valeurs différentes en X et AC x=x+1 Sheets("Feuil2").Range("A") & x = Sheets("Feuil1").range("X" & n) 'place valeur en col A de feuil2 End If Next 

Cdlmnt
Via

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,

Merci pour votre réponse, j'ai essayé mais ca ne fonctionne pas. De plus si je comprend bien votre code il teste que la valeur de X2 par exemple ne soit pas égale à AC 2, hors je voudrais qu'il t'este toute la colonne car cette valeur pourrait être ailleurs.

Je vous ai mis mon fichier en pièce jointe, il y a d'autres macros c'est la dernière dont on parle.

https://www.cjoint.com/c/HGmoJx0661H

merci

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Dans ce cas il faut passer par un NB.SI

Sub finalbatch()  
x = 3
Dim Ligne As Long
Ligne = Sheets("ZPOCL").Columns(24).Find("*", , , , xlByColumns, xlPrevious).Row ' derniere ligne remplie col X
For n = 2 To Ligne ' boucle sur lignes depuis la 2eme jusqu'à la dernière
If Application.WorksheetFunction.CountIf(Sheets("ZPOCL").Range("AC:AC"), Sheets("ZPOCL").Range("X" & n)) = 0 Then ' si valeurs n'existe pas dans AC
x = x + 1
Sheets("Database").Range("A" & x) = Sheets("ZPOCL").Range("X" & n) 'place valeur en col A de feuil2
End If
Next

End Sub

Reply
réponses:
  • auteur

    Bonjour,

    Merci c'est génial ca marche impeccable et sans erreur. J'ai juste un point, ca me remonte des cases blanches, comment les lui faire enlever?

    merci

  • auteur

    Bonjour

    C'est que tu dois avoir des vides dans ta colonne X, alors complète le IF ainsi :

    If Application.WorksheetFunction.CountIf(Sheets("ZPOCL").Range("AC:AC"), Sheets("ZPOCL").Range("X" & n)) = 0 And Sheets("ZPOCL").Range("X" & n) <>"" Then

    Cdlmnt
    Via

  • auteur

    C'est parfait ca marche, merci beaucoup!

    Bonne journée,

    lucie

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed