Salut Mytå et gros merci à toi, ça marche impec.
Ayant en fait une dizaine de colonnes, j'ai modifié ta macro, comme suit, afin d'avoir le choix des deux colonnes à interchanger
Sub Swap()
'
' Macro pour Moa par Mytå (02-mars-2003)
'
Dim rang As Long, temp As String
For rang = 1 To 1000
If Cells(rang, [g2]).Value = Cells(2, 3).Value And Cells(rang, [j2]).Value = Cells(2, 5).Value Then
temp = Cells(rang, [g2]).Value
Cells(rang, [g2]).Value = Cells(rang, [j2]).Value
Cells(rang, [j2]).Value = temp
End If
Next rang
End Sub
Et cela marche très bien, en J2 et G2, j'ai deux listes déroulantes (de 1 à 10)
et je choisis donc, les deux colonnes qui m'intéresse.
Puis après réflexion, je me suis dit, tiens, mais je pourrais demander de tout interchanger, et voilà ce que cela donne :
Sub Swap()
'
' Macro pour Moa par Mytå (02-mars-2003)
'
Dim rang As Long, temp As String
For rang = 1 To 1000
temp = Cells(rang, [g2]).Value
Cells(rang, [g2]).Value = Cells(rang, [j2]).Value
Cells(rang, [j2]).Value = temp
Next rang
End Sub
Et cela fonctionne aussi très bien.
J'ai donc voulu l'adapter à mon programme, et là deux hics :
Eh oui, mes colonnes à interchanger ne commencent qu'en C16, et je ne veux surtout pas que la macro touche à mes cellules du dessus.
J'ai donc modifié : "For rang = 1 to 1000" par "For rang = 16 to 1000"
Et cela fonctionne très bien aussi.
Le deuxième hic, est que selon les tableaux que j'importe, ma valeur 1000, n'est plus bonne.
En effet, des fois j'importe des tableaux de 5000 voir 8000 lignes.
Donc, comment dans "For rang = 16 to 1000" puis je remplacer le mille par une variable ?
Si c'est possible..héhé...!!
Merci beaucoup à toi
@ +
Moa