Recherche d'un code VBA

Bonjour

J'ai un fichier qui comporte un jeux de donnèes de grande taille.

Il concerne des accidents de la route au cours de l'anné 2017.

je l'ai eu sur data.gouv.fr

J'ai deux colones differentes qui comportent les numéros d'accidents.

la première comprte tous les accident en FRANCE, tandis que la seconde ne concerne que la région ile de france.

Je voudrais juste les lignes ou les deux numéros de ses colones sont identiques et je voudrais supprimer le reste.

J'ai essayé ce code:

Sub carac()

Dim i As Long: Dim j As Long: Dim k As Long: Dim l As Long

Dim der_ligne As Long:

der_ligne = Cells.SpecialCells(xlCellTypeLastCell).Row

For i = 2 To der_ligne

For j = 1 To 12

For k = 13 To 28

For l = 2 To der_ligne

While i < der_ligne

While l < der_ligne

If (Cells(i, 1).Value <> Cells(l, 13).Value And Cells(i, j) <> "" And Cells(i, k) <> "") Then

Rows(i).Delete

End If

i = i + 1

l = l + 1

Wend

Wend

Next l

Next k

Next j

Next i

End Sub

En gros je veux conserver la première ligne celle avec mes variables.

Ensuite je voudrais supprimer une partie de toutes les lignes ou le numéro de la première colonne est different de celui de la 14ième

Cela fait des jous que j'essaie j'y arrive pas

SOS

PETITE RECTIFICATION

Ce n'ets pas la 14ième colone mais la 13ième

MERCI

Bonjour,

Pour une meilleurs compréhension (de notre part), il serait bon d'identer le code et le mettre entre balises "code"

Sans support pour concrétiser la structure des feuilles, pas facile d'apporter une réponse précise.

Pas sûr d'avoir tout saisi.

Pour supprimer des lignes il faut toujours partir de la dernière pour remonter vers la première; sinon il y aura un décalage dans les N° de ligne au fur et à mesure des suppressions.

 'test des deux colonnes par exemple C et D
For i = der_ligne_C to 2 step -1 
       Trouve=False
       For j = 2 to der_ligne_D
            if Cells(i,"C").value= cells(j,"D").Value then
                Trouve=True
                exit for
           end if
       Next

       If not Trouve then  rows(i).delete   ' si élément de C n'existe pas dans D , supprime ligne C
Next       

Mais attention si les données à tester sont sur la même feuille la suppression de la ligne pour la colonne C entrainera la suppression également en colonne D (forcément !) Il vaudra mieux utiliser:

Range("C" & i).Delete Shift:=xlUp

Si les deux colonnes ne sont pas sur la même feuille, il faudra préciser les feuilles:

.../...
if worksheets("Feuil1").Cells(i,"C").value= worksheets("Feuil2").cells(j,"D").Value
.../...

A+

Rechercher des sujets similaires à "recherche code vba"