Décaler cellule ligne N colonne A en ligne N-1 colonne A+1

Résolu/Fermé
lapi51 - 6 nov. 2015 à 10:52
 lapi51 - 6 nov. 2015 à 18:04
Bonjour à toutes et à tous,


Je dispose d'un fichier pour lequel j'aimerai déplacer le contenu de certaines cellules dans d'autres et je pense qu'avec une macro cela devrait être assez optimal. Seulement, je ne maîtrise pas l'édition de macro...

Voila ce que j'aimerai faire : déplacer le contenu de B2 en C1, B4 en C3, B6 en C5. Pour résumer toute les lignes paires (N) de la colonne B doivent repasser sur la colonne C, en lignes impaires (N-1). Le gros souci (pour moi en tout cas) est que j'ai déjà des données dans les fameuses cases impaires (N-1) de la colonne C. Des données que je ne voudrai pas écraser.
Ensuite la cerise sur le gâteau serait d'effacer automatiquement les lignes pour lesquelles le contenu a été déplacé et qui sont donc vides.

Voilà pour mon problème. Je vous remercie par avance pour votre implication .

A bientôt


A voir également:

2 réponses

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
6 nov. 2015 à 11:02
Bonjour,

Du coup, on fait quoi dans les cellules C(n-1) non vides ?
Apparemment on n'écrase pas, donc :
- on garde la valeur telle quelle ?
- on concatène ?
- on fait autre chose ?

A+
0
Bonjour a toi ,

L'idéal serait de décaler toute les cellules d'une colonne , pour laisser la colonne C vide , prête à recevoir ces nouvelles données. Si possible . Sinon la concaténation me parait être une bonne alternative .

A++
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
6 nov. 2015 à 11:45
Bonjour,

Une proposition
Sub Test()
Dim DerLig As Long, Ligne As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom de feuille à adapter
DerLig = .Range("B" & Rows.Count).End(xlUp).Row
.Columns("C:C").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
For Ligne = 2 To DerLig Step 2
.Cells(Ligne, 2).Copy .Cells(Ligne - 1, 3)
.Cells(Ligne, 2).ClearContents
Next Ligne
Application.CutCopyMode = False
End With
End Sub

A+
0
Parfait Gyrus , un grand merci
0