AIDE MACRO - rechercher un matricule puis insérer une donnée

Bonjour,

Je voudrais pouvoir mettre en place une macro qui permettrai :

- de mettre dans l'onglet A le nombre d'enfants (donnée qui se situe dans l'onglet B) tout en faisant attention à bien respecter le matricule

Merci de votre aide

Bonne soirée

60classeur1.xls (14.00 Ko)

Bonjour

Tu peux très bien faire ça avec une formule

=SIERREUR(RECHERCHEV(A2;FeuilleB;4;FAUX);"")

Il faut :

1 - Nommer la plage de la feuilleB ==> onglet formule - gestionnaire de nom

2 - mettre la formule dans la case concernée et "tirer vers le bas"

Regarde si ça te va dans le fichier joint et demande des explications supplémentaires le cas échéant

Cordialement

Christine

53kurapika.xlsm (10.40 Ko)

Bonjour,

Je ne comprends vraiment pas ta formule et je n'arrive pas en l'utiliser

Pourrais tu me fournir un exemple ou davantage d'explications

Merci encore,

Bonjour

Voilà quelques explications sur DECALER et RECHERCHEV qu'il est utile de connaitre pour utiliser excel.

1 Nommer sur la feuille B la plage A:D (DECALER permet de pouvoir rajouter des données dans la feuille sans avoir à modifier dans le gestionnaire de nom )

Gestionnaire de nom dans l'onglet formules (bandeau bleu en haut)

=DECALER(B!$A:$D;1;0;NBVAL(B!$A:$A)-1)

Je l'ai nommé "PlageB"

2 Ecrire en F2 de la feuille A

=SIERREUR(RECHERCHEV(A2;PlageB;4;FAUX);"")

RECHERCHEV(A2;PlageB;4;FAUX)

On recherche le nom inscrit en A2

Dans la feuille "B" entre les colonnes A et D (=plageB)

et on veut que la donnée dela 4ème colonne (colonne D de la feuille B) s'inscrive

SIERREUR( ; ) permet d'afficher la premiére partie de la parenthèse si tout va bien ou la deuxième si une erreur est trouvée (ce qui est le cas si la formule ne trouve pas le matricule dans la feuilleB), On aura donc un blanc à la place de "N/A s

3 tirer la formule vers le bas (avec la petite croix pour la copier sur les lignes suivantes)

Il y a de nombreuses explications détaillées sur ces 2 fonctions sur internet

Cordialement

Christine

39kurapika.xlsm (11.00 Ko)

Re

Merci pour tes explications, j'ai compris comment marché la fonction décaler (recherchev je la connaissait déjà)

Je testerai ça au taff lundi sur mon vrai tableau donc si j'ai encore un souci je reviendrai vers toi

Merci encore de ta patience et pour tes explications

Bonne journée

Bonjour,

La formule marche bien, mais le souci c'est que j'aimerais que avec un simple appuie sur un bouton me faire cette macro (sans savoir le nombre de matricule, ne pas se limité seulement à l'exemple que j'ai fournis)

On peux avoir 15 matricule comme 600.

Merci de votre aide.

Bonne journée.

Bonsoir

Voilà un essai par macro

Sub NbEnfants()
'
Dim R As Variant
Dim i, dlg As Integer
dlg = Range("A" & Rows.Count).End(xlUp).Row  'Dernière ligne rentrée

For i = 2 To dlg
R = Application.VLookup(Cells(i, 1), Range("plageB"), 4, False)  ' on recherche la valeur dans la plageB Equivalent de RECHERCHEV

If Not IsError(R) Then       ' s'il n'y a pas d'erreur c'est que la valeur a été trouvée
    Cells(i, 6) = R          ' on l'écrit
End If
Next
End Sub

Cordialement

Christine

41kurapika.xlsm (17.65 Ko)

Bonjour,

C'est presque parfait, j'aurai encore une question :

Pour nommer la plageB j'ai enregistrer une macro qui me donne le résultat suivant :

ActiveWorkbook.Names.Add Name:="plageB", RefersToR1C1:= _

"=OFFSET(B!C1:C4,1,0,COUNTA(B!C1)-1)"

Et la macro me fait une erreur,

Aurais tu une solution ?

Merci encore pour ton aide.

Bonne journée

Bonjour

La plageB est nommée sans macro une fois pour toute et même si on rajoute des données, la plage s'allonge.

Je ne peux pas t'aider plus car je n'ai jamais nommée de plage par macro.

Cordialement

Rechercher des sujets similaires à "aide macro rechercher matricule puis inserer donnee"