Test de find

bonjour,

le code fonctionne que si tous les find sont trouvés sinon ça plante.

(si ref ou désignation ou prix n'existe pas ca plante).

j'ai une dizaine de test comme celui la (col a col10)

comment remédier a cela? si find valeur existe peut être...

Sub CopyToColonneY()

col = Range("A1:X1").Find("ref").Column

Columns(col).Copy Destination:=Columns("Y:Y")

col2 = Range("A1:X1").Find("designation").Column

Columns(col2).Copy Destination:=Columns("Z:Z")

col3 = Range("A1:X1").Find("prix").Column

Columns(col3).Copy Destination:=Columns("AA:AA")

End Sub

Merci.

Bonjour,

Mieux vaut utiliser la méthode Find avec un objet Range.

tu pourras ainsi vérifier son existence.

Exemple :

Sub CopyToColonneY()
Dim rRef As Range, rDesign As Range, rPrix as Range

Set rRef = Range("A1:X1").Find("ref")
If Not rRef Is Nothing Then rRef.EntireColumn.Copy Destination:=Columns("Y:Y")

Set rDesign = Range("A1:X1").Find("designation")
If Not rDesign Is Nothing Then rDesign.EntireColumn.Copy Destination:=Columns("Z:Z")
'etc...
End Sub

Bonjour,

Pour le principe avec Match().

Cdlt.

Public Sub CopyToColonneY()
Dim rng As Range, i As Long, col, a, b
    a = Array("ref", "designation", "prix")
    b = Array(25, 26, 27)
    With ActiveSheet
        Set rng = .Cells(1).Resize(, 24)
        For i = LBound(a) To UBound(a)
            col = Application.Match(a(i), rng, 0)
            If Not IsError(col) Then .Cells(col).EntireColumn.Copy Destination:=.Cells(b(i))
        Next i
    End With
End Sub
Rechercher des sujets similaires à "test find"