macro incrémentation sur une ligne différente

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

J

jo

Guest
bonsoir et merci pour votre aide,

je voudrais simplement effectuer une macro :quand je clique sur un bouton A ça m'envoie une liste de résultat sur une ligne d'une autre feuille 'feuilB', jusque là rien de difficile, mais je voudrais que chaque fois que je clique sur ce bouton, les résultats s'incrémentent sur une ligne en dessous dans la 'feuilB'.
facile ?* merci pour votre aide ... 😉
 
Bonsoir Justine, Jo, le Forum

En complémement de ce que dit Justine est sans selection de feuille ou de plage :


Méthode de base pour une valeur contenue dans une cellule :

Sub SendDataSheetB_OneCellString()
Dim MyString As String
Dim LastCell As Range

MyString = Sheets('FeuilA').Range('A1')

   
With Sheets('FeuilB')
       
Set LastCell = .Range('A65536').End(xlUp).Offset(1, 0)
   
End With
   
LastCell = MyString
End Sub


Méthode similaire mais en passant par un Object Range au lieu d'une string :

Sub SendDataSheetB_OneCellRange()
Dim MyRange As Range
Dim LastCell As Range


Set MyRange = Sheets('FeuilA').Range('A1')

   
With Sheets('FeuilB')
       
Set LastCell = .Range('A65536').End(xlUp).Offset(1, 0)
   
End With
   
LastCell = MyRange


Méthode plus élaborée si par exemple on veut passer la valeur de cinq cellule de A1 à E1 :


Sub SendDataSheetB_FiveCellsRange()
Dim MyRange As Range
Dim LastCell As Range


Set MyRange = Sheets('FeuilA').Range('A1:E1')

   
With Sheets('FeuilB')
       
Set LastCell = .Range('A65536').End(xlUp).Offset(1, 0)
   
End With
   
LastCell.Resize(1, 5) = MyRange()

End Sub


Bonne Soirée
[ol]@+Thierry[/ol]
 
RE Bonsoir Jo

Essaies de remplacer ta Macro1 par celle-ci :

Sub Macro1()
Dim MyRange As Range, Cell As Range
Dim LastCell As Range
Dim C As Byte

With Sheets('Feuil1')
Set MyRange = Application.Union(.Range('A12:C12'), .Range('B18'))
End With
   
With Sheets('Feuil2')
       
Set LastCell = .Range('A65536').End(xlUp).Offset(1, 0)
   
End With
   
For Each Cell In MyRange
C = C + 1
LastCell.Offset(0, C - 1) = Cell
Next

End Sub

Bonne Soirée
[ol]@+Thierry[/ol]
 
Re : macro incrémentation sur une ligne différente

Bonjour Kayss

oui, si l'autre classeur est ouvert, faire précéder les noms des feuilles par le nom du classeur concerné, exemploe :

Code:
With Workbooks("classeur1.xls").Sheets("Feuil1")
End With

bon après midi
@+
 
- 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
149
  • Question Question
Réponses
6
Affichages
279
Retour