Intervertir données

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

romualdlecordier

XLDnaute Occasionnel
Bonjour

J'ai une macro réalisé grâce à l'aide de ce forum qui fonctionne très bien mais il y a une manip que je n'arrive pas à faire

J'espere que vous pourrez m'aider

Il faut que quand la colonne F est égal à 97 ou 98, les données qui se trouvent en colonne H et I doivent être interverti

Les données de la colonne H se retrouve en I et ceux de I en H

Merci de votre aide

Romuald
 

Pièces jointes

Re : Intervertir données

Bonjour, romualdlecordier, le Forum,

Peut-être ainsi :

Code:
Option Explicit
Sub Valeurs_inverser_si()
    Dim i As Long
    Application.ScreenUpdating = False
    Columns("h:i").Insert Shift:=xlToRight
    For i = Range("f" & Rows.Count).End(xlUp).Row To 1 Step -1
        If Range("f" & i) = 97 Or Range("f" & i) = 98 Then
            Range("f" & i).Offset(, 2) = Range("f" & i).Offset(, 5)
            Range("f" & i).Offset(, 3) = Range("f" & i).Offset(, 4)
        End If
    Next
    Columns("h:i").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft
    Columns("j:k").Delete Shift:=xlToLeft
    Application.ScreenUpdating = True
End Sub

A bientôt 🙂
 
Re : Intervertir données

Bonjour,

J'ai une macro réalisé grâce à l'aide de ce forum qui fonctionne très bien mais il y a une manip que je n'arrive pas à faire
Aucune macro dans le classeur fourni

J'espere que vous pourrez m'aider

un pseudo algorithme qui peut servir de trame:
Code:
dans une boucle de la première à la dernière ligne de la feuille concernée faire
   si la cellule de ligne:indice de boucle et de colonne F = 97 ou 98 alors
       MaVariable = cellule de ligne:indice de boucle et de colonne H
       cellule de ligne:indice de boucle et de colonne H = cellule de ligne:indice de boucle et de colonne I
       cellule de ligne:indice de boucle et de colonne I = MaVariable
   Fin si
fin boucle

A+ pour des précisions
 
Re : Intervertir données

bonjour romualdlecordier ,DoubleZero🙂🙂🙂,Paf

on pourrait écrire comme cela egalement

Code:
Sub es()
 Dim t, i As Long, z
 t = Range("f1:i" & Cells(Rows.Count, 6).End(3).Row)
 For i = 1 To UBound(t)
 If t(i, 1) = 97 Or t(i, 1) = 98 Then _
 z = t(i, 3): t(i, 3) = t(i, 4): t(i, 4) = z
 Next i
 Range("f1").Resize(UBound(t, 1), UBound(t, 2)) = t
End Sub
 
Re : Intervertir données

Bonjour romualdlecordier, le forum,

Ci-joint début de solution ...
Code:
Option Explicit
Sub Permuter()
Dim ws As Worksheet, rng As Variant, temp As Variant
Set ws = Sheets("Feuil1")
For Each rng In Range(ws.[F2], ws.[F65000].End(xlUp))
    If rng.Offset = "97" Or rng.Offset = "98" Then
        temp = rng.Offset(0, 2).Value
        rng.Offset(0, 2).Value = rng.Offset(0, 3).Value
        rng.Offset(0, 3).Value = temp
    End If
Next
End Sub
Cordialement, Kim.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
378
Réponses
5
Affichages
701
Réponses
25
Affichages
1 K
Retour