XL 2013 Macro pour faire copie-coller

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

  • Test lestoiles.xlsx
    10.4 KB · Affichages: 12
C

Compte Supprimé 979

Guest
Bonjour les étoiles bonjour le forum
Je ne suis pas raccord avec votre demande, mais je vous propose une solution par double clic dans la colonne B, qui ouvrira un formulaire. Le bouton ajout renseignera la colonne b à la suite de la 2ᵉ cellule vide colonne A
cordialement
galougalou
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:
C

Compte Supprimé 979

Guest
Bonjour Lestoiles1

Voici le code à mettre dans le code de la feuille
1622878849395.png


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:

lestoiles1

XLDnaute Occasionnel
Bonjour Lesetoiles1

Voici le code à mettre dans le code de la feuille
Regarde la pièce jointe 1107555

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

@+
Merci , c'est exactement ce que je voulais
 

lestoiles1

XLDnaute Occasionnel
Bonjour Lesetoiles1

Voici le code à mettre dans le code de la feuille
Regarde la pièce jointe 1107555

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

@+
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

  • Test lestoiles.xlsx
    10.4 KB · Affichages: 6
C

Compte Supprimé 979

Guest
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

@+
 

Discussions similaires

Statistiques des forums

Discussions
315 134
Messages
2 116 614
Membres
112 811
dernier inscrit
shade1452