Macro pour copier des noms dans les bonnes cellules.
Résolu
grandpapol
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
grandpapol Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
grandpapol Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai fait une feuille de calcul protégé pour une activité des résidents.
J'ai copier tous les noms dans la colonne b à partir de la ligne 40.
à chaque personne qui arrive je dois copier son nom à partir de la ligne 4 de la même colonne et un en dessous de l'autre qui détermine l'ordre de leur arrivé pour qu'ils forme des équipes de deux. Comme je dois garder le même format de cellule J'ai utilisé l'enregistrement automatique qui me donne:
Selection.Copy
ActiveWindow.SmallScroll Down:=-21
Range("B4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Cette macro m'empêche de copier le deuxième nom une cellule plus bas.
J'ai essayé avec :
Selection.Copy
Selection.End(xlUp).Select
Selection.End(xlUp).Select
Mais quand je veux descendre d'une cellule et copier le nom je n'ai pas la bonne formule et n'ai pas trouvé la solution en lisant les blog durant 12 heures.
Je suis las et espère avoir votre solution.
J'ai fait une feuille de calcul protégé pour une activité des résidents.
J'ai copier tous les noms dans la colonne b à partir de la ligne 40.
à chaque personne qui arrive je dois copier son nom à partir de la ligne 4 de la même colonne et un en dessous de l'autre qui détermine l'ordre de leur arrivé pour qu'ils forme des équipes de deux. Comme je dois garder le même format de cellule J'ai utilisé l'enregistrement automatique qui me donne:
Selection.Copy
ActiveWindow.SmallScroll Down:=-21
Range("B4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Cette macro m'empêche de copier le deuxième nom une cellule plus bas.
J'ai essayé avec :
Selection.Copy
Selection.End(xlUp).Select
Selection.End(xlUp).Select
Mais quand je veux descendre d'une cellule et copier le nom je n'ai pas la bonne formule et n'ai pas trouvé la solution en lisant les blog durant 12 heures.
Je suis las et espère avoir votre solution.
3 réponses
-
Bonjour,
Pas très clair, ton exposé
Si tu veux copier le nom inscrit en B4 sur la première ligne vide après la ligne 39 :
il faut que B39 ne soit pas vide (au minimum un espace)Option Explicit
'-----
Sub inscrire_petitnouveau()
Dim Ligvide As Integer
Ligvide = Columns("B").Find("", Range("B39"), xlValues).Row
Range("B" & Ligvide) = Range("B4")
End Sub
Michel
je ne me suis pas occupé de la déprotection-reprotection-
Merci de votre réponse rapide. Il est vrai que je n'étais pas très clair. Trop de fatigue...
Votre macro fonctionne bien mais ne m'est pas utile car voici la situation :
J'ai fait une liste des noms de nos résidents de la cellule B40 à B60. Elle sera plus longue à l'avenir.
Comme seulement quelques résidents viennent jouer dans la salle, la personne en charge sélectionnera le nom de chaque personne qui arrive avec la souris et activera la macro qui placera ce nom dans la prochaine cellule vide après B4 et ainsi de suite. De cette manière nous savons qui sont les résident qui jouent dans la salle.
-
-
Bonjour
Peut-être cette solution si j'ai bien compris ce que tu veux faire :
LigCop = 4 DerniereLigne = Range("B40").End(xlDown).Row For Lig = 40 To DerniereLigne Step 1 Range("B" & Lig).Select Selection.Copy 'ActiveWindow.SmallScroll Down:=-21 Range("B" & LigCop).Select Selection.PasteSpecial Paste:=xlPasteValues LigCop = LigCop + 1 Next -
Voici peut-être la solution. Créer un bouton qui lance cette macro. Choisir un nom cliquer sur le bouton, puis ainsi de suite
Sub CopierNomsDansCell() Dim Ligvide As Integer Ligvide = Columns("B").Find("", Range("B3"), xlValues).Row Selection.Copy Range("B" & Ligvide) = Selection.Value Selection.PasteSpecial Paste:=xlPasteValues End Sub