OVH Cloud OVH Cloud

Parcours du combattant un peu débroussaillé...

2 réponses
Avatar
Ricou
Bonjour à tous,

voici le code que j'ai créé et qui ne fonctionne pas comme je veux (jai
toujours des doublons!) :à la fin j'indique la nature des variables
Voilà ce que j'aimerais faire :si la cellule est identique à la précédente,
on prend les cellules de Cells(j - 1, 12) à Cells(j - 1, Janv + Month(Date) -
3) que l'on transpose dans Range(Cells(j, 12), Cells(j, Janv + Month(Date) -
3) (en fait, descendre d'une ligne les cellules sélectionnées) ensuite on
supprime la ligne précédente.

Cells(2, 1).Activate
j = 1
Do While Not IsEmpty(ActiveCell.Value)

If ActiveCell.Value = ActiveCell.Offset(-1, 0) Then
Range(Cells(j - 1, 12), Cells(j - 1, Janv + Month(Date) -
3)).Cut _
Destination:=Range(Cells(j, 12), Cells(j, Janv +
Month(Date) - 3))
Range(j - 1 & ":" & j - 1).Delete
j = j - 1
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If

j = j + 1
Loop

j sert à connaître le numéro de la ligne de l'ActiveCell et Janv est le
numéro de la colonne L.

Merci d'avance à tous!

2 réponses

Avatar
LSteph
Bonjour Ricou,

A priori,
si j=1
cells(j-1,12)
pose un pb =>cells(0,12)

Si tu boucles avec des suppressions il vaut mieux procèder en remontant.
Mais , pour poursuivre explique le contexte et ce que tu veux concrètement
faire plutôt
que ce que tu essaye de vouloir faire faire pour arriver à ce que l'on
imagine pas forcément.


A+

lSteph

"Ricou" a écrit dans le message de news:

Bonjour à tous,

voici le code que j'ai créé et qui ne fonctionne pas comme je veux (jai
toujours des doublons!) :à la fin j'indique la nature des variables
Voilà ce que j'aimerais faire :si la cellule est identique à la
précédente,
on prend les cellules de Cells(j - 1, 12) à Cells(j - 1, Janv +
Month(Date) -
3) que l'on transpose dans Range(Cells(j, 12), Cells(j, Janv +
Month(Date) -
3) (en fait, descendre d'une ligne les cellules sélectionnées) ensuite on
supprime la ligne précédente.

Cells(2, 1).Activate
j = 1
Do While Not IsEmpty(ActiveCell.Value)

If ActiveCell.Value = ActiveCell.Offset(-1, 0) Then
Range(Cells(j - 1, 12), Cells(j - 1, Janv + Month(Date) -
3)).Cut _
Destination:=Range(Cells(j, 12), Cells(j, Janv +
Month(Date) - 3))
Range(j - 1 & ":" & j - 1).Delete
j = j - 1
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If

j = j + 1
Loop

j sert à connaître le numéro de la ligne de l'ActiveCell et Janv est le
numéro de la colonne L.

Merci d'avance à tous!


Avatar
Ricou
Merci,
le j=2 a effectivement en partie résolu le prroblème
mais il ne faut pas de "ActiveCell.Offset(1, 0).Select" avant le "Else" car
le fait de supprimer une ligne fait que l'on descend d'une ligne.

Merci


Bonjour Ricou,

A priori,
si j=1
cells(j-1,12)
pose un pb =>cells(0,12)

Si tu boucles avec des suppressions il vaut mieux procèder en remontant.
Mais , pour poursuivre explique le contexte et ce que tu veux concrètement
faire plutôt
que ce que tu essaye de vouloir faire faire pour arriver à ce que l'on
imagine pas forcément.


A+

lSteph

"Ricou" a écrit dans le message de news:

Bonjour à tous,

voici le code que j'ai créé et qui ne fonctionne pas comme je veux (jai
toujours des doublons!) :à la fin j'indique la nature des variables
Voilà ce que j'aimerais faire :si la cellule est identique à la
précédente,
on prend les cellules de Cells(j - 1, 12) à Cells(j - 1, Janv +
Month(Date) -
3) que l'on transpose dans Range(Cells(j, 12), Cells(j, Janv +
Month(Date) -
3) (en fait, descendre d'une ligne les cellules sélectionnées) ensuite on
supprime la ligne précédente.

Cells(2, 1).Activate
j = 1
Do While Not IsEmpty(ActiveCell.Value)

If ActiveCell.Value = ActiveCell.Offset(-1, 0) Then
Range(Cells(j - 1, 12), Cells(j - 1, Janv + Month(Date) -
3)).Cut _
Destination:=Range(Cells(j, 12), Cells(j, Janv +
Month(Date) - 3))
Range(j - 1 & ":" & j - 1).Delete
j = j - 1
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If

j = j + 1
Loop

j sert à connaître le numéro de la ligne de l'ActiveCell et Janv est le
numéro de la colonne L.

Merci d'avance à tous!