Remplir une ligne selon une autre feuille

Bonjour,

J'ai besoin de vos compétences Excel

J'ai une feuille 1 qui représente les accidents

j'ai une feuille 2 avec la liste du personnel

J'aimerai que si je rentre le nom d'une personne en feuille 1 il me récupère les informations de la feuille 2 à ce même nom et me renseigne les informations dans la bonne colonne

Est ce possible par Excel ?

Sinon par vba ce qui ne m'arrange pas de trop

Merci d'avance

Enzo_IT

17essai.xls (17.00 Ko)

bonjour,

=RECHERCHEV($A2;'LISTE DU PERSONNEL'!$A$2:$E$4;2;FAUX)

à adapter selon tableau

Rien à dire, merci beaucoup

Au secours,

je viens de rajouter une variable qui bouleverse tout, du coup je vais partir sur du VBA

je reexplique ce que je veux

Si je rentre le nom d'une personne dans la feuille 1, je veux qu'il recherche les informations de cette ligne dans la feuille 2

Voici les correspondance entre les colonnes

Feuille 1 Feuille 2

Colonne C Colonne C

Colonne D Colonne D

Colonne E Colonne N

Colonne J Colonne F

Colonne K Colonne S

Je ne veux surtout pas que la macro s'execute sur les autres colonne de la feuille 1 car elles seront remplies manuellement

Enfin, j'aimerai que si dans la feuille 1, la colonne C, D, E, J et K de la ligne correspondant au nom de la personne est remplie, la macro ne s'exécute plus après

(par exemple la personne change d'age d'année en année mais je ne veux pas que son age se modifie).

Merci d'avance car la je suis perdu

13essai-3.xlsm (10.10 Ko)

Un petit coup de main sur ce sujet svp ?

bonjour,

une proposition avec userform

Private Sub ComboBox1_Change()
'rempli les texbox du userform
If Me.ComboBox1.Value <> "" Then
Set cel = Sheets("Liste du personnel").Columns(2).Find(ComboBox1, LookIn:=xlValues)
If Not cel Is Nothing Then
Me.TextBox1.Value = cel.Offset(, 1)
Me.TextBox2.Value = cel.Offset(, 3)
Me.TextBox3.Text = cel.Offset(, 12)
Me.TextBox4.Text = cel.Offset(, 4)
Me.TextBox5.Value = cel.Offset(, 17)
End If
End If
End Sub

Private Sub CommandButton1_Click()
Dim k As Integer
'rempli feuille "accident"
Sheets("Accidents").Activate
k = Range("b65000").End(xlUp).Row + 1
Cells(k, 2) = Me.ComboBox1.Value
Cells(k, 3) = Me.TextBox1.Value
Cells(k, 4) = Me.TextBox2.Value
Cells(k, 5) = Me.TextBox3.Value
Cells(k, 10) = Me.TextBox4.Value
Cells(k, 11) = Me.TextBox5.Value
'ferme userform
Unload Me
End Sub

Private Sub UserForm_Initialize()
'liste deroulante
For i = 2 To Sheets("Liste du Personnel").Range("B65000").End(xlUp).Row
Me.ComboBox1.AddItem Sheets("Liste du Personnel").Cells(i, 2)
Next
End Sub

pas trop sur d'avoir compris ce que tu voulais par contre .c

31essai-3.xlsm (12.90 Ko)

Exentro ou zongo86, c'est exactement ça que je veux, à une nuance prêt

une fois que les infos ont été renseigné sur la personne, je ne veux pas que les données de la feuille 1 sur monsieur A changent si je modifie les infos de monsieur A dans la feuille 2.

Pour faire simple,

dans la 1 je rentre le nom d'un accidenté et je vais chercher automatiquement des renseignements sur lui dans la feuille 2.

Or l'année d'après, monsieur A aura un an de plus, mais dans ma feuille 1 qui répertorie les accidents je ne veux pas que l'age change.

J'aimerai donc qu'une fois la ligne de les cellules de monsieur A dans la feuille 1 sont remplis, ils ne changent plus jamais, même si je modifie monsieur a dans la feuille 2

Suis un petit peu plus clair ?

Oui, mais du coup je ne pense pas que ce soit possible avec excel, en tout cas sans vba, et encore, pas sûr que le vba puisse le faire (ceci dit je n'ai pas la science infuse avec excel donc je peux me gourer).

Ce que tu décris c'est pour moi plus un comportement de base de données (archivage des anciennes valeurs en cas d'update et consultation des archives) que d'un tableur.

Tu aurais ptet intérêt à envisager de coupler excel avec access (ou alors une vraie BD )

Une petite question

est ce qu'il existe un code sur vba qui dans une cellule retire la fonction entrée mais conserve la valeur de la cellule ?

J'ai trouvé la solution de faire un copier de la ligne rempli et collage spécial uniquement les valeurs

Néanmoins, vba me trouve une erreur et fait ramer excel

je veux que le copier coller spécial se face si les colonnes A, B, E et F pour la colonne de monsieur A sont remplies.

Comme ça avec un i as Integer, je peux le faire sur tout mon tableau

Merci d'avance

bonjour, donc si je comprend bien dans ton fichier l'age est obtenu par une formule? si c'est le cas tu applique format collage valeur dans la feuil1, les données ne changeront pas

J'ai un fichier accident et un fichier liste du personnel

quand j'inscrit monsieur A dans les accidents il a 25 ans.

Un an plus tard, monsieur A à 26 ans dans le fichier du personnel

mais dans le fichier accident il avait toujours 25 ans le jour de l'accident donc je ne veux pas que son age change

C'est pour cette raison que j'ai dis si les informations de monsieur a sont remplies dans le tableau accident alors copier, collage spécial des valeurs uniquement

mais problème, ma macro ne fonctionne pas dans le fichier que j'ai joint dans le message précédent

Peux tu regarder pourquoi cela ne marche pas ?

Rechercher des sujets similaires à "remplir ligne feuille"