VLOOKUP dans formulaire avec plusieurs feuilles [Résolu]

RYA6 1 Messages postés dimanche 22 janvier 2017Date d'inscription 22 janvier 2017 Dernière intervention - 22 janv. 2017 à 13:27 - Dernière réponse : Patrice33740 6343 Messages postés dimanche 13 juin 2010Date d'inscription 17 décembre 2017 Dernière intervention
- 23 janv. 2017 à 09:08
VBA Office (Excel, Word ...) Posez votre question Signaler Répondre au sujet
Bonjour,
Débutante en VBA c'est la 1ère fois que je m'adresse à un forum pour poser une question alors merci d'excuser les éventuelles maladresses.
Mon problème : dans la zone "ActiveCell.Offset(0, 5).Value" , je souhaiterai que ma macro cherche le nom que je saisi dans mon formulaire dans la feuille "experts". Si le nom existe, elle fait le travail. Mais si le nom n'existe pas, elle interroge alors la feuille "conditions" dans laquelle il est certain qu'elle trouve une correspondance.
Voici mon fichier :
'Procédure permettant d'ajouter un nouvel enregistrement
 Private Sub CommandButtonAjout_Click()
 Sheets("Source").Activate
 Range("A1").Select
 Selection.End(xlDown).Select 'on se positionne sur la dernière ligne non vide
 Selection.Offset(1, 0).Select 'on se décale d'une ligne vers le bas
 Selection.EntireRow.Insert 'insère une ligne
 ActiveCell = ComboBoxNom.Value
 Nom = ComboBoxNom.Value
 ActiveCell.Offset(0, 1).Value = TextBoxFactureNo 'facture N°
 ActiveCell.Offset(0, 2).Value = ComboBoxPeriode 'période
 ActiveCell.Offset(0, 3).Value = TextBoxCommentaire 'commentaire
 ActiveCell.Offset(0, 4).Value = TextBoxMontant.Value 'montant
 ActiveCell.Offset(0, 5).Value = If(NOT(ISNA(VLookup(Nom;Worksheets("Experts").Range("Baseexperts"); 5, 0)); VLookup(Nom;Worksheets("Experts").Range("Baseexperts"); 5, 0);IF(NOT(ISNA(VLookup(Nom;Worksheets("Conditions").Range("tableexpert"); 5; 0); VLookup(Nom;Worksheets("Conditions").Range("tableexpert"); 5; 0);""))
 ActiveCell.Offset(0, 6).Value = TextBoxEquiveuros 'equiv euros
 ActiveCell.Offset(0, 8).Value = Application.WorksheetFunction.VLookup(Nom, Worksheets("Conditions").Range("tableexpert"), 3, False) 'projet
 ActiveCell.Offset(0, 9).Value = Application.WorksheetFunction.VLookup(Nom, Worksheets("Conditions").Range("tableexpert"), 4, False) 'dp
 ActiveCell.Offset(0, 10).Value = Application.WorksheetFunction.VLookup(Nom, Worksheets("Experts").Range("Baseexperts"), 21, False) 'conditions
 ActiveCell.Offset(0, 11).Value = Application.WorksheetFunction.VLookup(Nom, Worksheets("Experts").Range("Baseexperts"), 24, False) 'frais
 ActiveCell.Offset(0, 12).Value = TextBoxDatefact
 ActiveCell.Offset(0, 13).Value = DateAdd("d", Cells(ActiveCell.Row, 11).Value, TextBoxDatefact.Value) 'date d'échéance
 ActiveCell.Offset(0, 14).Value = TextBoxPaiement
 ActiveCell.Offset(0, 15).Value = TextBoxSign1
 ActiveCell.Offset(0, 16).Value = TextBoxSign2
 ActiveCell.Offset(0, 17).Value = TextBoxCtaire1
 ActiveCell.Offset(0, 18).Value = TextBoxCtaire2
 ActiveCell.Offset(0, 19).Value = TextBoxCtaire
 ActiveCell.EntireRow.Select 'sélectionne la ligne de la cellule activ
 With Selection.Interior 'avec intérieur de la sélection
 .Pattern = xlNone 'aucun remplissage
 End With
 MsgBox ""
 End Sub

Par avance, merci pour votre aide.

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
Afficher la suite 

2 réponses

Répondre au sujet
Patrice33740 6343 Messages postés dimanche 13 juin 2010Date d'inscription 17 décembre 2017 Dernière intervention - 22 janv. 2017 à 18:06
0
Utile
Bonjour,

1. Merci de baliser le code :



2. Pour le If regardes ici :
https://msdn.microsoft.com/fr-fr/library/office/gg251599.aspx
Commenter la réponse de Patrice33740
Patrice33740 6343 Messages postés dimanche 13 juin 2010Date d'inscription 17 décembre 2017 Dernière intervention - 23 janv. 2017 à 09:08
0
Utile
Re,

Maintenant que tu as obtenu une réponse sur un autre Forum, passes ce post en résolu.
Commenter la réponse de Patrice33740

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.