Intervertir deux lignes VBA

Résolu/Fermé
Archi89 Messages postés 6 Date d'inscription mercredi 23 juillet 2014 Statut Membre Dernière intervention 29 juillet 2014 - 23 juil. 2014 à 11:30
Archi89 Messages postés 6 Date d'inscription mercredi 23 juillet 2014 Statut Membre Dernière intervention 29 juillet 2014 - 23 juil. 2014 à 13:48
Bonjour,

Je vous sollicite pour trouver une solution à mon petit pb.
Voilà, je désire avoir une macro vba qui permet d'intervertir les valeurs de deux lignes.
J'ai un tableau avec P colonnes et 1500 lignes :
J'ai deux boucles (variables i et j, qui balayent les lignes) et j'aimerai intervertir les valeurs (de la colonne A à O (je garde P intacte)) des lignes i et j.
J'espère être assez clair.
Merci d'avance.

3 réponses

Archi89 Messages postés 6 Date d'inscription mercredi 23 juillet 2014 Statut Membre Dernière intervention 29 juillet 2014
Modifié par Archi89 le 23/07/2014 à 12:00
J'ai pensé à ceci:

ReDim ligne1(0, 14) As String
ReDim ligne2(0, 14) As String

For n = 1 To 15 '(de A à O)
ligne1(0, n - 1) = Cells(i, n).Value
ligne2(0, n - 1) = Cells(j, n).Value
Cells(i, n).Value = ligne2(0, n - 1)
Cells(j, n).Value = ligne1(0, n - 1)
Next


Je rappel que j'ai deux boucles i et j (elles ne sont pas représentées ici).
Je trouve cette solution assez lourde.
N'existe t'il pas une solution plus simple (sans boucle n, pas ex)?
Merci d'avance
0
Iama Messages postés 319 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 27 mars 2020 14
23 juil. 2014 à 12:27
Bonjour Archi89

Je pense que tu peux t'inspirer de :

Dim zoN As Range, zonV As Variant
Set zoN = Range(Cells(2, 1), Cells(2, 15))
zonV = zoN.Value

Range(Cells(4, 1), Cells(4, 15)) = zonV


Iama
0
Archi89 Messages postés 6 Date d'inscription mercredi 23 juillet 2014 Statut Membre Dernière intervention 29 juillet 2014
23 juil. 2014 à 13:48
Merci Iama, j'utilisais mal la fonction Range et Set.
Tout est rentré dans l'ordre.
0