possibilité d'une macro?

dan57

XLDnaute Nouveau
Bonjour,

J'explique la situation simplifiée:

Dans la colonne A j'ai des noms de client et je souhaiterais faire une macro permettant Que le 1er client different de A1 dans la colonne vienne être collé dans A1.

a1= dupont
a2= dupont
a3= dupont
a4= dupont
a5= dupont
a6= dupont
a7= dupont
a8= dupont
a9= TARTEMPION
a10=dufour
a11= gaspard etc.....

Donc dans l'exemple ci dessus j'aimerais que TARTEMPION vienne en A1 avec les clients suivants:
a1= TARTEMPION
a2=dufour
a3= gaspard etc....


Je ne peux pas dédoublonner avant car j'ai besoin, dans une autre feuille, des données contenues dans les lignes a2 à a8 justement parcequ'il s'agit du même client

une macro serait elle possible et quel en serait le code?

Merci de votre aide
daniel :)
 

dan57

XLDnaute Nouveau
Re : possibilité d'une macro?

Merci de ta réponse.
Celà fonctionne! ( mais tu testes de a1 à a11 alors qu'il y a un nombre de lignes indéfinis en dessous)
Mais le plus gros problême c'est qu'il y a 85 colonnes derriere A et c'est toute la ligne qui doit monter en A1.

J'avais simplifié en pensant que j'aurais adapté la réponse et le principe à une plage en fait... :)
Voyez vous une solution?
Merci
daniel :)
 

dan57

XLDnaute Nouveau
Re : possibilité d'une macro?

Bonjour

Je pensais à un code de ce genre:

Range(Cells(1, 2), Cells(9, 9)).Cut
ActiveSheet.Paste Destination:=Range(Cells(1, 2), Cells(9, 9)).offset(3, 0)

Mais il me faudrait mettre une variable à "offset(3, 0)" genre offset ((valeur de W4, 0)

la valeur du décalage vertical se trouve en effet dans la cellule W4 mais je ne sais pas comment écrire celà.

Vous remerciant de votre aide

Daniel :)
 

JCGL

XLDnaute Barbatruc
Re : possibilité d'une macro?

Bonjour à tous,

La valeur se trouve en W4...
Nous n'avons toujours pas de fichier.

Dans ma formule je me suis arrêté à 11 mais tu peux agrandir la plage en modifiant simplement la formule pour ne pas voir les 0 :

=SI(ESTERREUR(INDIRECT("A"&MIN(SI(NB.SI($C$1:C1;$A$1:$A$200)<1;LIGNE($A$1:$A$200)))))
;"";INDIRECT("A"&MIN(SI(NB.SI($C$1:C1;$A$1:$A$200)<1;LIGNE($A$1:$A$200)))))&""

Pour le bout de code, peux-tu essayer :

VB:
Option Explicit

Sub Test()
Range(Cells(1, 2), Cells(9, 9)).Copy
ActiveSheet.Paste Destination:=Range(Cells(1, 2), Cells(9, 9)).Offset(Cells(4, 23), 0)
End Sub

A+ à tous
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : possibilité d'une macro?

Bonsoir dan57, à tous,

Un essai dans le fichier joint. Double-cliquer sur la cellule A1. Le code est dans le module de la feuille Feuil1".

nota : ce n'est pas une plage de cellules qu'on remonte mais les lignes entières (c'est facilement modifiable en cas de besoin)
 

Pièces jointes

  • dan57-DecalerBloc-v1.xlsm
    15.6 KB · Affichages: 19
Dernière édition:

dan57

XLDnaute Nouveau
Re : possibilité d'une macro?

JCGL, ce code VBA fonctionne trés bien ... Merci t'es un fils !!:D

Mapomme, celà fonctionne bien aussi mais je n'ai pas trouvé le code et il n'y a aucune macro. Peut celà vient il que j'en suis encore à excel 2000 ?:confused:
 

Discussions similaires

Statistiques des forums

Discussions
312 273
Messages
2 086 693
Membres
103 372
dernier inscrit
BibiCh