Macro Tri-Select-Copy dans une autre feuille

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

C

Celeda

Guest
Bonjour à toutes et tous
J'ai appliqué le principe de l'Inputbox suivant après avoir fait
un tri d'un tableau : (je souhaite garder cet outil)
Sub BrowseRange()
Dim Zone As Range
Set Zone = Application.InputBox("Sélectionnez une zone !", Type:=8)
MsgBox ("Vous avez sélectionné la zone " & Zone.Address)

J'ai ajouté cette partie
Selection.Copy
Sheets("Sheet3").Select
ActiveCell.Offset(3, 0).Range("A1").Select
ActiveSheet.Paste

End Sub

Quelque chose ne fonctionne pas :
1er bug : un coup sur deux elle me copie la plage selectionnée un peu n'importe ou dans la sheet 3.
2em bug : à la fin du tri en fonction de la cellule dans laquelle se positionnera l'utilisateur, c'est cette cellule qui est recopiée en premier.

Principes :
Je veux laisser à l'utilisateur le choix de selectionner la plage qu'il veut et que celle-ci se recopie pour commencer en A2 de la sheet 3.
Pour corser le tout : si l'utilisateur a oublié une ligne ou deux, je souhaite qu'il puisse de nouveau faire fonctionner la macro (à l'aide du même bouton) et que les autres lignes viennent se placer en dessous de la selection dèjà faite (je sais pas faire).

Que dois-je modifier dans le code SVP.
Merci à l'avance.
 
Salut Celeda

voilà comment j'ai modifié ton exemple de code pour répondre à ton problème.
Comme tu le voulais, la première sélection est copiée en A2, ensuite les autres sélections se copient à la drenière ligne vide (j'ai d'ailleurs repris une formule donnée sur ce forum pour retrouver la première ligne vide, comme quoi rien ne se perd ici). Note que pour que cette macro fonctionne correctement, il faut que la colonne A de "Feuil3" ("sheet3" pour toi) contienne toujours une valeur.

Sub BrowseRange()
Dim Zone As Range
Dim LastLigne

Set Zone = Application.InputBox("Sélectionnez une zone !", Type:=8)
LastLigne = Worksheets("Sheet3").Range("A65534").End(xlUp).Offset(1, 0).Address
Range(Zone.Address).Copy Destination:=Worksheets("Sheet3").Range(LastLigne)
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
934
Retour