VLookup dans TextBox Concatener UserForm

Alexvob

XLDnaute Nouveau
Bonjour,

Après plusieurs jours de recherches, je suis dans l'impasse.

Je souhaite par rapport a une base de donnée avoir différents résultat de recherche.

Je souhaite utiliser VBA et UserForm et des TextBox.

Le problème est que la base de la recherche est sur 3 critères "une année", "un numéro", "une ligne".

Afin de facilité cette recherche j'ai concaténer dans ma base et dans mon UserForm mes 3 TextBox(1,2,3) afin d'avoir un résultat de la Concaténation dans le TextBox6.

J'ai l'impression qu'un VLookup ne fonctionne pas avec une Concaténation VBA (à l'inverse d'une rechercheV avec Concaténation).

La concaténation est obligatoire car d'année en année l'"année" et "numéro" peux changer mais les résultats recherché resterait le même.

Je mets en lien mon fichier qui a une base

Private Sub Workbook_Open()

ThisWorkbook.Application.Visible = True
Load Mandat
Mandat.Show 0

End Sub

(ça peut gêner certain, vu sur d'autre forum)

Merci d'avance.
 

Pièces jointes

  • mandat3.xlsm
    23.1 KB · Affichages: 39

Jacky67

XLDnaute Barbatruc
Bonjour,

Après plusieurs jours de recherches, je suis dans l'impasse.

Je souhaite par rapport a une base de donnée avoir différents résultat de recherche.

Je souhaite utiliser VBA et UserForm et des TextBox.

Le problème est que la base de la recherche est sur 3 critères "une année", "un numéro", "une ligne".

Afin de facilité cette recherche j'ai concaténer dans ma base et dans mon UserForm mes 3 TextBox(1,2,3) afin d'avoir un résultat de la Concaténation dans le TextBox6.

J'ai l'impression qu'un VLookup ne fonctionne pas avec une Concaténation VBA (à l'inverse d'une rechercheV avec Concaténation).

La concaténation est obligatoire car d'année en année l'"année" et "numéro" peux changer mais les résultats recherché resterait le même.

Je mets en lien mon fichier qui a une base

Private Sub Workbook_Open()

ThisWorkbook.Application.Visible = True
Load Mandat
Mandat.Show 0

End Sub

(ça peut gêner certain, vu sur d'autre forum)

Merci d'avance.

Bonjour,
Tester ceci !
A la place de :
>>Private Sub TextBox6_AfterUpdate()<<
Code:
Private Sub TextBox6_Change()
With Feuil1  ' ==>code name (j'ai inversé les feuilles)
  If IsNumeric(Application.Match(TextBox6.Value, .[a:a], 0)) Then
  Me.TextBox4 = .Cells(Application.Match(TextBox6.Value, .[a:a], 0), 5)
  Me.TextBox5 = .Cells(Application.Match(TextBox6.Value, .[a:a], 0), 6)
  Else
  Me.TextBox4 = ""
  Me.TextBox5 = ""
  End If
End With
End Sub
 

Pièces jointes

  • mandat3.xlsm
    30.5 KB · Affichages: 65

Alexvob

XLDnaute Nouveau
J'ai une autre question :

Quand j'ouvre mon fichier, Mon UserForm s'ouvre (sans le fichier excel, le but recherché) mais fait disparaître les autres fichiers excel externes aux macros. Mon bouton "Retour Excel" fait en sorte de faire réapparaître mon fichier source et... les autres fichiers externes.

Quand mon UserForm est lancé et fait disparaître les autres fichiers externes, en cliquant sur la croix rouge, les fichiers externes ouvert auparavant ne réapparaisse pas...


Mon problème est là...

En gros comment rendre indépendant les actions des macros sans avoir d'action sur d'autres fichiers Excel ?

- Code "ThisWorkbook" pour faire ouvrir seulement le UserForm :

Private Sub Workbook_Open()

ThisWorkbook.Application.Visible = False
Load Mandat
Mandat.Show 0

End Sub

- CommandButton de retour Excel :

Private Sub CommandButton1_Click()

ThisWorkbook.Application.Visible = True

End Sub

- CommandButton de fermeture de l'UserForm

Private Sub CommandButton4_Click()

ActiveWorkbook.Close savechanges:=False

End Sub

Je pense qu'il manque une action de "donner seulement l'action de faire à" ???

Merci d'avance.
 

Jacky67

XLDnaute Barbatruc
J'ai une autre question :

Quand j'ouvre mon fichier, Mon UserForm s'ouvre (sans le fichier excel, le but recherché) mais fait disparaître les autres fichiers excel externes aux macros. Mon bouton "Retour Excel" fait en sorte de faire réapparaître mon fichier source et... les autres fichiers externes.

Quand mon UserForm est lancé et fait disparaître les autres fichiers externes, en cliquant sur la croix rouge, les fichiers externes ouvert auparavant ne réapparaisse pas...


Mon problème est là...

En gros comment rendre indépendant les actions des macros sans avoir d'action sur d'autres fichiers Excel ?

- Code "ThisWorkbook" pour faire ouvrir seulement le UserForm :

Private Sub Workbook_Open()

ThisWorkbook.Application.Visible = False
Load Mandat
Mandat.Show 0

End Sub

- CommandButton de retour Excel :

Private Sub CommandButton1_Click()

ThisWorkbook.Application.Visible = True

End Sub

- CommandButton de fermeture de l'UserForm

Private Sub CommandButton4_Click()

ActiveWorkbook.Close savechanges:=False

End Sub

Je pense qu'il manque une action de "donner seulement l'action de faire à" ???

Merci d'avance.
Re…
Pas certain d'avoir compris ce que tu cherches à faire.
Néanmoins, la gestion de la fermeture de l'userform par la "Croix rouge" peut se faire par
Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then
  Application.Visible = True
  'autres instructions
End If
End Sub
 

Alexvob

XLDnaute Nouveau
Merci Jacky67 !

Par exemple quand j'ouvre mon fichier "mandat3" avec le userform, macro... et que j'ouvre après un fichier excel lambda sans macro prédéfini, ma base de donnée "mandat3" s'affiche.

Au contraire, si j'ouvre un fichier lambda sans macro prédéfini et après mon fichier "mandat3", le UserForm prend le dessus sur tout les fichier excel lancés.

Le Macro de mon fichier "mandat3" est applicable a tout les fichier excel en cours.

Est-il possible de n'avoir que l'action des macro/userform de "mandat3" que sur "mandat3" et que tout autres fichiers/classeurs excel lancer ne soit pas impacter par l'action de ces macro ?

Merci pour ton aide ;)
 

Jacky67

XLDnaute Barbatruc
Re..
Si quand tu parles d'action tu penses à "Application.Visible" , sauf erreur, je ne crois pas que cela soit possible, puisque c'est l'application que tu rends visible ou pas et non pas un classeur.

**Pour le bouton "Quitter"
Code:
Private Sub CommandButton2_Click() 'Quitter
  Application.Visible = True
  ThisWorkbook.Close False
End Sub

Bonne nuit
 
Dernière édition:

Discussions similaires

Réponses
12
Affichages
484