Salut, j'aurais besoin d'aide pour une macro

  • Auteur de la discussion outilsetprocess
  • Date de début

outilsetprocess

Expert
Bonjour, j'ai des données des colonnes A à la colonne N

En colonne A on a des identifiants qui changent et j'ai donc mis un saut de ligne à chaque changement de valeur :

Sub InserLignes()
Dim i As Long
On Error Resume Next
For i = Range("B65536").End(xlUp).Row To 2 Step -1
If Cells(i, 2) <> Cells(i - 1, 2) Then Rows(i).Insert
Next
End Sub

Elle fonctionne parfaitement

Ce que je souhaiterais maintenant :

Pour les lignes groupées, c'est à dire qui ont plusieurs fois le même identifiant d'une ligne à l'autre (donc pas de saut de ligne), j'aimerais que la dernière ligne, s'il est écrit "Active" en colonne N, on puis la couper, et la coller une ligne au dessus et deux colonne sur la droite

Exemple de lignes groupées

1 Julien ... INACTIVE
1 Julien ... INACTIVE
1 Julien ... ACTIVE

Je voudrais que la 3ème ligne soit une ligne au dessus et deux colonne sur la droite

Voilà

Je vais le coder en langage "normal" pour vous expliquer :

Sub CouperColler

Dim i as Long

If i+1=i ET Cells(i,14)="Active"
   Cells(i, A:N).Copy
   ActiveCell.Offset(-1, 2).Paste
   Supprimer Cells(i, A:N)
End if
Se positionner à i+1 sur la colonne A
End Sub

Voilà, désolé pour ce code de sang mêlé (informaticien-non connaisseur)

Mais si vous pouviez m'aider merci beaucoup !!!!
 

outilsetprocess

Expert
Sub CouperColler
for i = 1 to i+1
If i+1=ActiveCell AND Cells(i,14)="Active"
Cells(i, A:N).Copy
Range("A" & i & ":N" & i).Copy destination:= Range("P" & i-1)
Cells(i, A:N).delete
End if
Next if
End Sub

Voilà un nouveau code que j'ai "tenté" je précise que j'y connais que dalle
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 125
Messages
6 717 736
Membres
1 586 357
Dernier membre
Peg7
Partager cette page
Haut