Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Macro pour faire copie-coller

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

lestoiles1

XLDnaute Occasionnel
Bonjour à tous,

J'aimerais que lorsque je saisie un numero matricule dans la colonne B , lorsque j'apuis sur entrée à la fin du saisie, ça copie automatiquement en bas jusqu'à ce qu'il trouve une cellule vide dans la colonne A. Par exemple le 13918 jusqu'à la ligne 14.

Merci d'avance

Lestoiles1
 

Pièces jointes

Merci pour votre réponse mais je ne comprend pas tres bien, je fait double clique et une boite de dialogue s'affiche, je sais le numero matricule , puis je clique sur "ajout" , il ne se passe rien.
 
Vous êtes marrant vous 🤔
Qu'est-ce que ça veut dire "ne pas être raccord"... imposer sa volonté !?
 
Dernière modification par un modérateur:
Bonjour Lestoiles1

Voici le code à mettre dans le code de la feuille


et qui fait exactement ce que vous demandez 😜✌️

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim dlig As Long, pLig As Long, Matricule As String
  ' Si supresssion donnée simple ou multiple
  If Target.Resize(1, 1).Value = "" Then Exit Sub
  ' Se pas dans la colonne B on sort
  If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
  ' Mémoriser les infos
  Matricule = Target.Value: pLig = Target.Row: dlig = pLig
  ' Parcourir les lignes jusqu'à cellule vide
  Do While Range("A" & dlig).Value <> ""
    dlig = dlig + 1
  Loop
  ' Désactiver les évènements
  Application.EnableEvents = False
  ' Case vide on inscrit le matricule sur toute la plage
  Range("B" & pLig & ":B" & dlig - 1).Value = Matricule
  Range("B" & dlig + 1).Select
  ' Réactiver les évènements
  Application.EnableEvents = True
End Sub

@+
 
Dernière modification par un modérateur:
Merci , c'est exactement ce que je voulais
 
Une dernière chose svp, j'aimerais ajouter 8 a côtes de chaque première matricule ,comme dans le pj svte: (dans la colonne C), Pourriez vous me donner le macro svp?
Merci
lestoiles
 

Pièces jointes

Bonjour lestoiles1

Voici le code modifié
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim dlig As Long, pLig As Long, Matricule As String
  ' Si supresssion donnée simple ou multiple
  If Target.Resize(1, 1).Value = "" Then Exit Sub
  ' Se pas dans la colonne B on sort
  If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
  ' Mémoriser les infos
  Matricule = Target.Value: pLig = Target.Row: dlig = pLig
  ' Parcourir les lignes jusqu'à cellule vide
  Do While Range("A" & dlig).Value <> ""
    dlig = dlig + 1
  Loop
  ' Désactiver les évènements
  Application.EnableEvents = False
  ' 2021/06/07 : La cellule modifiée est la 1ère de la liste, on inscrit 8 sur la colonne de droite
  Target.Offset(0, 1).Value = 8
  ' Case vide on inscrit le matricule sur toute la plage
  Range("B" & pLig & ":B" & dlig - 1).Value = Matricule
  Range("B" & dlig + 1).Select
  ' Réactiver les évènements
  Application.EnableEvents = True
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

Discussions similaires

Réponses
4
Affichages
406
Réponses
1
Affichages
307
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…