VLOOKUP dans formulaire avec plusieurs feuilles

Résolu
RYA6
Messages postés
1
Date d'inscription
dimanche 22 janvier 2017
Statut
Membre
Dernière intervention
22 janvier 2017
- Modifié par NHenry le 22/01/2017 à 18:45
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
- 23 janv. 2017 à 09:08
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.

2 réponses

Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
21
22 janv. 2017 à 18:06
Bonjour,

1. Merci de baliser le code :



2. Pour le If regardes ici :
https://msdn.microsoft.com/fr-fr/library/office/gg251599.aspx
0
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
21
23 janv. 2017 à 09:08
Re,

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