Copier avec condition VBA
lucieaup
-
lucieaup -
lucieaup -
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
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
A voir également:
- Copier avec condition VBA
- Excel cellule couleur si condition texte - Guide
- Comment copier une vidéo youtube - Guide
- Super copier - Télécharger - Gestion de fichiers
- Historique copier coller - Guide
- Copier disque dur - Guide
3 réponses
Bonjour Lucieaup
Une possibilité :
Cdlmnt
Via
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
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
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
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
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