permutage de cell. si ok

  • Initiateur de la discussion Initiateur de la discussion pilou
  • Date de début Date de début

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 !

P

pilou

Guest
Bonjour everybody

j'ai une demande un peu bizarre !!!!

je voudrais que sur mon fichier excel, sur demande, il puisse me permuter 2 cellules entre elles

ex (A1) = toto (c1) = titi
alors excel me pose la question :
souhaitez vous permuter oui non
si oui
(A1) deviens titi et (C1) deviens toto
et on passe a la ligne suivante

ce serait genial si vous avienz une soluce pour ca
merci a tous
 
Bonjour pilou

ce type de code te demande si tu veux permuttez pour chaque ligne en colonne A :


Sub Bouton1_QuandClic()
Dim c As Range
Dim temp

For Each c In Range('a1:a' & Range('a65536').End(xlUp).Row)
       
If MsgBox('Voulez-vous permutter ' & c & ' et ' & c.Offset(0, 2) & ' ?', vbYesNo) = vbYes Then
                temp = c
                c = c.Offset(0, 2)
                c.Offset(0, 2) = temp
       
End If
Next c
       
End Sub


Par contre, j'espère que tu n'as pas trop de données car ca va vite te fatiguer ces msgbox, non ?

salut
 
re 🙂

je me doutais bien que ca te lasserait ces msgbox 🙂

j'ai rajouter un bouton annuler qui permet de sortir de la macro (attention, toutefois les précédentes modifs ne seront pas annuler)


Sub lolo_Bouton1_QuandClic()
Dim c As Range
Dim temp

For Each c In Range('c1:c' & Range('c65536').End(xlUp).Row)
       
Select Case MsgBox('Voulez-vous permutter ' & c & ' et ' & c.Offset(0, 13) & ' ?', vbYesNoCancel)
               
Case 6: 'reponse oui
                temp = c
                c = c.Offset(0, 13)
                c.Offset(0, 13) = temp
               
Case 2: Exit Sub 'reponse annuler
       
End Select
Next c

End Sub


pour permuttez la colonne c avec la colonne P :

For Each c In Range('c1:c' & Range('c65536').End(xlUp).Row)

ce code va te faire parcourir toutes les cellules de la colonne C.

la cellule P se trouve 13 colonnes après la C, on utilise donc c.offset(0,13) qui permet de se déplacer de 13 colonnes sur la meme ligne.

salut
 
re

la version te permettant de reprendre le code à la ligne ou tu t'etais arreter :


Public ligne As Integer
Sub lolo_Bouton1_QuandClic()
Dim c As Range
Dim temp

If ligne = 0 Then ligne = 1

If ligne > 1 Then
       
If MsgBox('reprendre à la ligne ' & ligne & ' ?', vbYesNo) = vbNo Then
                ligne = 1
       
End If
End If

For i = ligne To Range('c65536').End(xlUp).Row
       
Select Case MsgBox('Voulez-vous permutter ' & Cells(i, 3) & ' et ' & Cells(i, 16) & ' ?', vbYesNoCancel)
               
Case 6: 'reponse oui
                temp = Cells(i, 3)
                Cells(i, 3) = Cells(i, 16)
                Cells(i, 16) = temp
               
Case 2 'reponse annuler
                ligne = i
               
Exit Sub
               
       
End Select
Next i
ligne = 0
End Sub


a placer dans un module standard.

salut
 
Salut,

largement inspiré du code' de Hervé mais à mettre dans le code de la feuille et double clic sur une cellule de la colonne C (entre C1 et C100):

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect([C1:C100], Target) Is Nothing Then Exit Sub
Dim temp As Variant
Select Case MsgBox('Voulez-vous permutter ' & Cells(ActiveCell.Row, 3) & ' et ' _
& Cells(ActiveCell.Row, 16) & ' ?', vbYesNoCancel)
Case 6: 'reponse oui
temp = Cells(ActiveCell.Row, 3)
Cells(ActiveCell.Row, 3).Value = Cells(ActiveCell.Row, 16).Value
Cells(ActiveCell.Row, 16) = temp
Case 2 'reponse annuler
Exit Sub
End Select
End Sub

Patrick
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
973
Réponses
2
Affichages
644
R
Réponses
10
Affichages
2 K
M
  • Question Question
Réponses
5
Affichages
934
A
Réponses
11
Affichages
2 K
A
L
Réponses
9
Affichages
1 K
Retour