Saisie/copie-resaisie ^m cellule/autre copie

berlinesoso Messages postés 1 Statut Membre -  
Ga3z Messages postés 67 Statut Membre -
Bonjour,

Je suis en train de créer un fichier de gestion des accidents de service. Pour cela, j’utilise 2 feuilles.
Dans la 1ère : j’ai la liste des accidentés avec différentes informations avec notamment une ligne dans laquelle je saisis les informations relatives à la dernière prolongation connue
Dans la 2ème : j’ai la même liste des accidentés, mais là, avec la liste de toutes les prolongations reçues renseignées au fur et à mesure sur la même ligne avec, pour chacune d’elles, des infos telles que type avec liste déroulante (arrêt et/ou soins), date du certificat médical, date de début, date de fin, et enfin une autre cellule dans laquelle je renseigne l’état du document (c’est-à-dire, s’il est fait, à faire ou autres…) également sous forme de liste déroulante. Pour être plus claire, sur chaque ligne on trouve le nom de l’accidenté puis Prolongation 1 avec toutes les infos énumérées ci-dessus, Prolongation 2 idem, Prolongation 3 idem, etc… jusqu’à 25.
Mon problème est que jusqu’à présent je procède ainsi. Je saisis dans la 1ère feuille à la rubrique « dernière prolongation connue » toutes les données (type, dates, nbre J, doc à établir) puis je copie ces infos sur la 2ème feuille au fur et à mesure. Ensuite, dès réception d’une nouvelle prolongation, j’efface les données saisies dans la 1ère feuille toujours à la rubrique « dernière prolongation connue » puis je copie ces infos sur la 2ème feuille et ainsi de suite…
Je voudrais donc qu’une automatisation me permette de copier tout en saisissant une nouvelle donnée et le tout à la suite (c’est-à-dire une fois copiée la Prolongation 1, je veux que la nouvelle saisie se copie à la suite dans Prolongation 2, etc…).
Bon, j’espère avoir été suffisamment claire… mais bon, j’ai affaire à des pros qui sauront sans nul doute de quoi je parle.
Merci infiniment pour l'aide que vous pourriez m'apporter et le temps que vous allez me faire gagner !
A voir également:

5 réponses

Ga3z Messages postés 67 Statut Membre 6
 
je t'ai fait cette macro
je pars du principe qu'au départ, tu es dans ta 1ère feuille, la cellule contenant les données que tu veux copier étant sélectionnée, que les noms sont dans la première colonne et que la 2ème feuille s'appelle feuil2:

Sub derniere_prolong()
'copiage de la cellule
Selection.Copy
'recherche du nom sur même ligne (1ère cellule de la ligne, donc à gauche)
ActiveCell.End(xlToLeft).Select

' mise du nom en variable
n = Selection.Value

Sheets("feuil2").Select
' selection de la feuil2

Dim x As Range, a As String, l As Integer, c As Integer
Set x = Cells.Find(n, , xlValues, xlWhole, , , False)
If Not x Is Nothing Then
a = x.Address(0, 0)
l = x.Row
c = x.Column
End If
' recherche du nom

Cells(l, c).Select
'trouve la dernière colonne non vide de la ligne l

col = Cells(c, l).End(xlToRight).Column
cc = col + 1
Cells(l, cc).Select
'selectionne la dernière cellule vide de la ligne concernée
ActiveSheet.Paste
'colle la valeur dans cette cellule

End Sub

chez moi ça marche, dis-mois si ça donne ce que tu veux
0
Ga3z Messages postés 67 Statut Membre 6
 
j'oubliai:

pour effacer la cellule que tu viens de copier (je pars du principe que ta première feuille s'appelle "feuil1")

au début du code ajouter ceci:

' mise en variable des n° de ligne et de colonne de la cellule à copier
cli = ActiveCell.Row
ccol = ActiveCell.Column

et en fin de code:

Sheets("Feuil").Select
'selectionne la feuil1

Cells(cli, ccol).Select
'sélectionne la cellule copié

Selection.ClearContents
'efface le contenu
0
Ga3z Messages postés 67 Statut Membre 6
 
décidemment !!!

plus simple que le copier coller + effacer: le couper coller !

remplace Selection.Copy par Selection.Cut dans le code d'origine et c'est tout
0
berlinesoso
 
Merci pour ta réponse.

J'essaierai ta macro au mieux demain en retournant à mon travail, sinon après mes vacances dans 3 semaines. J'espère que je saurai comprendre car en dehors d'enregistrer une macro, je n'en jamais écris une. Mais bon, il faut un début à tout et je suis plutôt du genre curieuse...
Je te tiens au courant.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ga3z Messages postés 67 Statut Membre 6
 
quand tu as copié le code, tu vas à outils - macro - visual basic editor
dans le menu: insertion - module
et tu colles le code dans la page blanche
ensuite tu fermes visual basic editor et tu te retrouves sur ton classeur excel
après, quand tu es sur la cellule à copier, tu appelles la macro derniere_prolong et tu vérifies ce que ça donne
0