N° de colonne variable

Bonsoir

Dans la macro ci aprés est il possible de définir

le n° de colonne avec une variable comme pour Range

du style numb = column("b46")

ce qui pourrait donner

Range("numb" & num).Copy

Sub attente_1()

With Sheets("64_4t")

Application.ScreenUpdating = False

Dim num As Integer

num = Range("c46").Value

Sheets("64_4t").Select

Range("e" & num).Copy

Sheets("resultat").Select

Range("AN40").PasteSpecial Paste:=xlPasteValues

Application.ScreenUpdating = True

End With

End Sub

merci de m'indiquer s'il existe une solution ???

ou si je suis dans l'imaginaire

Pierre Br

Salut Pierre,

... car, en l'état, je ne vois pas vraiment le problème...

Au passage, s'il s'agit simplement de copier une valeur, nul besoin de tous tes SELECT, COPY, PASTE...

A+

Bonjour,

Du genre :

Dim Col As Integer

Col = Range("B46").Column
Col = Cells(46, 2).Column

Bonjour

Merci pour ta réponse

j'ai essayé la syntaxe ci- après

En lançant la macro

je n'ai pas de message d'erreur

le curseur se positionne bien en "AN40"

mais je ne récupère pas la valeur

Sans doute une erreur de syntaxe

Merci pour ton aide

Pierre

Sub attente_1()

With Sheets("64_4t")

Application.ScreenUpdating = False

Dim num As Integer

num = Range("c46").Value

Dim Col As Integer

Col = Range("B46").Column

Sheets("64_4t").Select

Range("col" & num).Copy

Sheets("resultat").Select

Range("AN40").PasteSpecial Paste:=xlPasteValues

Application.ScreenUpdating = True

End With

End Sub

Re,

Col étant une variable, elle ne doit pas être entre guillemets :

Sub attente_1()

    Dim num As Integer
    Dim Col As Integer

    Application.ScreenUpdating = False

    With Sheets("64_4t")

        num = .Range("c46").Value
        Col = .Range("B46").Column '<--- attention, ici, Col égalera 46 et non la valeur de B46 !

        'quand on utilise le numéro de ligne et de colonne, il faut utiliser Cells() et non Range()
        .Cells(num, Col).Copy Sheets("resultat").Range("AN40")

    End With

    Application.ScreenUpdating = True

End Sub

Bonjour

Merci pour ton aide.

je suis arrivé au résultat que je souhaitais

J'ai modifié : Col = .Range("as34").Column par Col = Range("as34").Value

ce qui me permet de récupérer la valeur de la cellule

A titre d'info je t'adresse la Macro

que je voulais créer.

Encore merci

Pierre

Sub correction3t()

Application.ScreenUpdating = False

Dim num As Integer

num = Range("au34").Value

Dim Col As Integer

Col = Range("as34").Value

' Dim temporaire As Double

With Sheets("resultat")

If Range("au34").Value > 1 Then

temporaire = Cells(num, Col).Value

Cells(num, Col).Value = Cells(num - 1, Col).Value

Cells(num - 1, Col).Value = temporaire

Else

temporaire = Cells(num, Col).Value

Cells(num, Col).Value = Cells(num + 1, Col).Value

Cells(num + 1, Col).Value = temporaire

End If

If Range("au34").Value > 1 Then

temporaire = Cells(num, Col + 1).Value

Cells(num, Col + 1).Value = Cells(num - 1, Col + 1).Value

Cells(num - 1, Col + 1).Value = temporaire

Else

temporaire = Cells(num, Col + 1).Value

Cells(num, Col + 1).Value = Cells(num + 1, Col + 1).Value

Cells(num + 1, Col + 1).Value = temporaire

End If

Application.ScreenUpdating = True

End With

Call Sheets("64_4t").copy_doublon3

Call Sheets("pre_tab").lanc_tableau_tour3

End Sub

Rechercher des sujets similaires à "colonne variable"