macro déplacement cellules

  • Initiateur de la discussion Initiateur de la discussion Veroline
  • 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 !

Veroline

XLDnaute Nouveau
bonjour

je recherche une macro toute simple je pense

je voudrais déplacer les données d'une cellule

exemple : si données en A6 => déplacement souhaité en B5
+ suppression de la ligne ainsi libérée

je souhaite effectuer cette macro avec un raccourci pour agir au coup par coup sur la colonne Ax

car les données peuvent se trouver en A10 => donc déplacement en B9
A16 => donc déplacement en B15
A29 => donc déplacement en B28
etc...

j'ai essayé une macro en me positionnant sur la cellule A6 puis couper, coller en B5 puis suppression de la ligne 6
celà ne fonctionne pas avec les autres lignes car B5 est modifié à chaque fois

merci à ceux qui voudront bien se pencher sur cette macro
 

Pièces jointes

Re : macro déplacement cellules

Re,

Tu as raison ! J'ai halluciné 😱

Par contre, dans ta PJ :
A5 = Alphonse
A6 = GIRARD
==> F5 = Alphonse; G5 = GIRARD => donc : l'un sous l'autre

MAIS
A10 = Roger
A11 = PALIN
==> F9 = Roger; F10 = PALIN => donc Côte à côte (pourquoi pas l'un sous l'autre ?)

A plus
 
Re : macro déplacement cellules

je pense qu'il y a une erreur dans ta réponse :
F5 et G5 sont côte à côte
F9 et F10 sont l'un sous l'autre (pourquoi pas côte à côte ?)

ma réponse : non, car comme je le disais dans mon premier message, je veux agir sur chaque nom un par un. Le fichier envoyé correspondrait donc à la première execution de la macro.

A la deuxième execution, j'obtiendrais F9 et G9 et ainsi de suite. Ca peut paraître fastidieux, mais j'ai des nombres lignes variables selon les noms. C'est pour cà qu'avec un raccourci style "ctrl+x", je pense y arriver facilement.

merci de votre patience
 
Re : macro déplacement cellules

Bonsoir et bienvenu sur le forum Véroline,
Bonsoir Soenda, le fil,

Modifie la macro de Soenda de la façon suivante et le résultat donné par la macro devrait te satisfaire.

Macro d'origine :
Code:
Sub test()

    If ActiveSheet.CodeName <> "Feuil1" Then Exit Sub
    
    With ActiveCell
        If .Column = 1 And .Row > 1 And .Value <> vbNullString Then
            .Offset(, 1).Value = .Offset(1).Value
            .Offset(1).EntireRow.Delete
        End If
    End With
    
End Sub

Macro corrigé :
Code:
Sub test()

    If ActiveSheet.CodeName <> "Feuil1" Then Exit Sub
    
    With ActiveCell
        If .Column = 1 And .Row > 1 And .Value <> vbNullString Then
            .Offset(-1, 1).Value = .Value
            .EntireRow.Delete
        End If
    End With
    
End Sub

Bonne fin de soirée
 
Re : macro déplacement cellules

Bonsoir Véroline, le fil,

Veroline à dit:
j'ai essayé ta macro et pour moi rien n'a changé

Avant de t'envoyer la macro corrigé, j'avais pris soin de la contrôler, elle fonctionnait très bien chez moi!

Tu as dû faire une mauvaise manip quelquepart!?!?

Car deux macros différentes faisant la même, c'est plutôt bizarre!!!!

Voici ci-joint le fichier corrigé (contenant la macro transmise tout à l'heure), tu pourras ainsi constater qu'elle fonctionne!

Alors? Ca fonctionne mieux maintenant? 😉

A te lire

Cordialement
 

Pièces jointes

Re : macro déplacement cellules

bonsoir Excel-Lent

GENIAL CA MARCHE

mille excuses mais je faisais le raccourci "ctrl+maj+B" de la macro de Soenda


en faisant MACRO EXECUTER ça tourne super

par contre dans le menu MACRO
OPTIONS
j'ai bien "ctrl+maj+B"

est-il possible d'avoir un raccourci clavier pour ta macro plutôt que de taper MACRO EXECUTER

merci beaucoup pour ton savoir et merci aussi pour l'aide de Soenda
 
Re : macro déplacement cellules

Re Excel-Lent

En regardant le détail de la macro, je ne comprends pas grand chose, mais l'essentiel est que çà fonctionne.

Néanmoins, je voulais savoir s'il était possible de créer cette macro en enregistrant les commandes directement sur la feuille de calcul
 
Re : macro déplacement cellules

Re,

La macro que j'ai posté, recopie la cellule en dessous de la cellule active, à côté de cette dernière. 😛

Ex. : A5 = Alphonse; A6 = GIRARD; Donne => A5 = Alphonse et B5 = Girard

Traduction : La cellule du dessous est copiée à côté de la cellule active.

Merci 😀
 
Dernière édition:
Re : macro déplacement cellules

Bonsoir Véroline,

Le fichier que j'ai fournis dans mon précédent message fonctionne en lancant la macro manuellement (comme tu l'as fais), mais également lorsque tu utilise le raccourci clavier (mais cela uniquement sur la Feuil1 - évidement)!

Oui, la macro tu peux la déplacer pour la mettre sur la feuille de ton choix (ainsi elle ne fonctionnera que sur la feuille concerné).

Dans ce cas, la ligne de code ci-dessous devient inutile et tu peux l'effacer.
If ActiveSheet.CodeName <> "Feuil1" Then Exit Sub


Véroline à dit:
En regardant le détail de la macro, je ne comprends pas grand chose

Et tu veux la comprendre?

Si oui regarde les explications ci-dessous :
Code:
Sub test() [COLOR="Green"]'début de la macro nommé "test"[/COLOR]

  If ActiveSheet.CodeName <> "Feuil1" Then Exit Sub [COLOR="Green"]'si la macro est lancé lorsque l'utilisateur est sur une autre feuille que "Feuil1" alors ne rien faire (fin de la macro)[/COLOR]
    
  With ActiveCell [COLOR="Green"]'avec la cellule actuellement sélectionner faire...[/COLOR] 
      If .Column = 1 And .Row > 1 And .Value <> vbNullString Then [COLOR="Green"]'si le numéro de la colonne (de la cellule sélectionné) est égale à 1 (A) et que le numéro de la ligne (de la cellule sélectionné) est supérieur à 1 et que la cellule sélectionné n'est pas vide alors ...[/COLOR] 
         .Offset([B][I]-1[/I][/B], [B][U]1[/U][/B]).Value = .Value [COLOR="Green"]'la cellule situé [I][B]une ligne au dessus[/B][/I] et [U][B]une colonne à droite[/B][/U] de la cellule sélectionné est égale à la valeur contenu dans la cellule sélectionné par l'utilisateur au préalable (avant le lancement de la macro)[/COLOR] 
         .EntireRow.Delete [COLOR="Green"]'effacer la ligne contenant la cellule sélectionné[/COLOR] 
      End If
  End With
    
End Sub [COLOR="Green"]'fin de la macro nommé "test"[/COLOR]

La macro est plus clair?

Bonne soirée

Cordialement
 
Dernière édition:
Re : macro déplacement cellules

bonjour,

merci Excel-Lent pour tes réponses, ta macro et les explications sont top.

Par contre, comment faire précisément pour recopier ta macro dans une autre feuille ?

Peut-on renommer le nom d'une macro ? Dans ton exemple, ta macro s'appele "test", je souhaiterais l'appeler autrement.

Merci encore pour ton aide.
 
- 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

T
Réponses
2
Affichages
986
T
A
Réponses
12
Affichages
1 K
AnjyD
A
Z
Réponses
3
Affichages
1 K
Z
Réponses
20
Affichages
4 K
C
Réponses
4
Affichages
2 K
C
Retour