XL 2016 Macro VBA pour copier tableau qui a un problème

Etoto

XLDnaute Barbatruc
Bonjour chers membres,

Dans une autre discussion, un membre (@pierrejean merci :)) m'a donnée une macro qui fonctionne nickel ! En fait, quand on clique sur une cellule de colonne B, le tableau correspondant qui se situe sur le deuxième onglet se fait "copier" dans la colonne J et K. Tout cela est parfait mais elle ne fonctionne pas quand je sélectionne la cellule B18, pourtant, y a bien une en-tête de tableau qui a exactement le même nom. Pouvez-vous m'aider ? C'est mon fichier que j'utilise pour ma ressource et je l'améliore.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B4:B38")) Is Nothing Then
    x = ActiveCell.Value
    Set c = Feuil1.Range("B1:O124").Find(x, LookIn:=xlValues)
    If Not c Is Nothing Then
        For n = c.Row To Rows.Count
            If Feuil1.Cells(n, c.Column) = "" Then
                fin = n
                Exit For
            End If
        Next
        Sheets("Accueil").Range("J2:K" & Rows.Count) = ""
        Feuil1.Range(Cells(c.Row, c.Column).Address & ":" & Cells(fin, c.Column + 1).Address).Copy Destination:=Sheets("Accueil").Range("J2")
    Else
        MsgBox ("Pas trouvé")
    End If
End If
End Sub

Merci beaucoup !
 

Pièces jointes

  • Conversion unités.xlsm
    70.1 KB · Affichages: 3
Solution
Bonjour @Etoto

Ta zone de recharge est trop petite
Set c = Feuil1.Range("B1:O124").Find(x, LookIn:=xlValues)

hors "Forces électromagnétique est en ligne 127
1640252878710.png


Solution :
Modifie ta zone de recherche ou bien rends la générique
(Tu prends comme référence la colonne la plus longue, chez toi c'est H)
Derlig = Feuil1.Range("H" & Rows.Count).End(xlUp).Row
Set c = Feuil1.Range("B1:O" & Derlig).Find(x, LookIn:=xlValues)

@Phil69970

Phil69970

XLDnaute Barbatruc
Bonjour @Etoto

Ta zone de recharge est trop petite
Set c = Feuil1.Range("B1:O124").Find(x, LookIn:=xlValues)

hors "Forces électromagnétique est en ligne 127
1640252878710.png


Solution :
Modifie ta zone de recherche ou bien rends la générique
(Tu prends comme référence la colonne la plus longue, chez toi c'est H)
Derlig = Feuil1.Range("H" & Rows.Count).End(xlUp).Row
Set c = Feuil1.Range("B1:O" & Derlig).Find(x, LookIn:=xlValues)

@Phil69970
 

Discussions similaires

Réponses
9
Affichages
318
Réponses
4
Affichages
200

Statistiques des forums

Discussions
298 792
Messages
1 971 811
Membres
203 481
dernier inscrit
kamrankaghar