Copie colonne "B" d'une feuille vers l'onglet "J" d'une autre feuille

Bonjour,

J'ai besoin de votre aide !

Je souhaite copier l'onglet "B" de la feuille "LAGON" vers l'onglet "J" de la feuille "INSEE" si correspondance entre la colonne A des deux feuilles (colonne A=id).

En fait, une rechercheV n'est pas compatible car il y a des villes en doublons (donc la rechercheV copie) recopie la même ville sur des code communes différents.

Je joins un fichier et un code que j'ai commencé à utiliser!

Je vous remercie !

Sub rechercheV()

    Dim WS1 As Worksheet, WS2 As Worksheet
    Dim i As Long, j As Long, ligne As Long, nL1 As Long, nL2 As Long, flag As Long
    Dim Chaine1 As String, chaine2 As String, table() As String

     Set WS1 = Sheets("INSEE")
      nL1 = WS1.Cells(Rows.Count, "A").End(xlUp).Row
       ligne = nL1
        Set WS2 = Sheets("LAGON")
        nL2 = WS2.Cells(Rows.Count, "A").End(xlUp).Row
       Application.ScreenUpdating = False

      For j = 2 To nL2 ' On scanne la feuille ligne à ligne
        chaine2 = WS2.Cells(j, 1) '& "|" & WS2.Cells(j, 2) & "|" & WS2.Cells(j, 3) & "|" & WS2.Cells(j, 4) & "|" & WS2.Cells(j, 5) & "|" & WS2.Cells(j, 6)
        flag = 0

    For i = 2 To nL1
      Chaine1 = WS1.Cells(i, 1) '& "|" & WS1.Cells(i, 2) '& "|" & WS1.Cells(i, 3) & "|" & WS1.Cells(i, 4) & "|" & WS1.Cells(i, 5) & "|" & WS1.Cells(i, 6)
       If chaine2 = Chaine1 Then
        flag = i
        WS1.Cells(flag, 10) = WS2.Cells(j, 2)
       Exit For
      End If
    Next i
      'If flag = 0 Then ' Ligne orpheline
       '   chaine2 = chaine2 & "|" & WS2.Cells(j, 7)
        '    table = Split(chaine2, "|")
         '     ligne = ligne + 1
          '     WS1.Cells(ligne, 1) = table(0)
           '     WS1.Cells(ligne, 2) = table(1)
            '    WS1.Cells(ligne, 3) = table(2)
             '   WS1.Cells(ligne, 4) = table(3)
              ' WS1.Cells(ligne, 5) = table(4)
          '    WS1.Cells(ligne, 6) = table(5)
          '  WS1.Cells(ligne, 8) = table(6)
       ' End If
    Next j
        Application.ScreenUpdating = True

End Sub

Bonjour,

J'ai besoin de votre aide !

Je souhaite copier la colonne "B" de la feuille "LAGON" vers la colonne "J" de la feuille "INSEE" si correspondance entre la colonne A des deux feuilles (colonne A=id).

En fait, une rechercheV n'est pas compatible car il y a des villes en doublons (donc la rechercheV copie) recopie la même ville sur des code communes différents.

Je joins un fichier et un code que j'ai commencé à utiliser!

Je vous remercie !

Bonjour

Peut être faudrait il commencer par supprimer les lignes en double dans INSEE.

L'utilisation de tableau structurés facilite grandement plein de tâches.

Bonjour Yal_Excel,

Non, ce ne sont pas vrais doublons puisque il des villes portent le même nom ou communes qui porte le même nom.

C'est le département et la région qui les différencient.

Je vous remercie pour votre retour.

En prenant toutes les colonnes en compte il y a 735 lignes en doublons. C'est vrai qu'il reste des codes qui ne sont pas des doublons sur toutes les colonnes.

De toute façon le code joint fonctionne avec ou sans doublons si c'est bien ce que vous souhaitiez.

Cordialement

Bonjour Yal_excel,

Je vous remercie, le programme fonctionne très bien.

Le fichier que j'ai joint est un échantillon.

J'ai adapté le code au fichier original et ça marche.

Bonne journée !

Ne pas oublier de marquer le sujet en Résolu...

Rechercher des sujets similaires à "copie colonne feuille onglet"