VBA: problème pour remplir un tableau avec un userform

clem8756

XLDnaute Nouveau
Bonjour le forum,

Je suis novice en vba et en grande difficulté pour résoudre un problème que j'ai depuis quelques jours, c'est pourquoi je fais appel à vous.

J'ai créer un userform (dans le classeur 1) pour remplir un tableau sur un deuxième classeur. Malheureusement je bloque sur un point:

Une fois le userform complété, je souhaite que la valeur du textbox soit envoyée au croisement d'une ligne et d'une colonne dans mon tableau. Or lorsque j'éxécute ma procédure la valeur du textbox va dans une colonne entière.

Merci d'avance pour votre aide.

Ci-joint les fichiers avec lesquels je travaille.
 

Pièces jointes

  • Classeur1.xls
    24.5 KB · Affichages: 178
  • Classeur2.xls
    21 KB · Affichages: 151
  • Classeur1.xls
    24.5 KB · Affichages: 176
  • Classeur2.xls
    21 KB · Affichages: 165
  • Classeur1.xls
    24.5 KB · Affichages: 177
  • Classeur2.xls
    21 KB · Affichages: 153

Pierrot93

XLDnaute Barbatruc
Re : VBA: problème pour remplir un tableau avec un userform

Bonjour,

regarde ceci, suppose les 2 classeurs ouverts, en espérant que cela puisse t'aider à avancer...
Code:
Private Sub CommandButton1_Click()
Dim ws As Worksheet, x As Range, y As Range
If ComboBox1.ListIndex = -1 Then Exit Sub
Set ws = Workbooks("classeur2.xls").Sheets(MonthName(Month(DTPicker1.Value)))
Set x = ws.Columns(2).Find(ComboBox1.Value, , xlValues, xlWhole, , , False)
If Not x Is Nothing Then
    Set y = ws.Rows(5).Find(DTPicker1.Value, , xlValues, xlWhole, , , False)
    If Not y Is Nothing Then ws.Cells(x.Row, y.Column).Value = TextBox1
End If
End Sub

A noter, pourquoi ne pas avoir tout mis dans le même classeur, surtout si tu débutes...

bonne journée
@+
 
Dernière édition:

clem8756

XLDnaute Nouveau
Re : VBA: problème pour remplir un tableau avec un userform

Merci pour la réponse rapide Pierrot93!

Je viens juste d'essayer mais ça n'a pas l'air de fonctionner... Lorsque j'exécute ça me met pour la ligne qui définit Set ws: erreur d'éxécution '9' L'indice n'appartient pas à la sélection...
C'est comme s'il ne trouvait pas le classeur2?...

Sinon le travail est sur deux classeur, car en fait je ne vous ai pas envoyé le "vrai" fichier avec lequel je travail, cela représente juste de manière simplifier ce que je cherche à exécuter sur un autre travail où le premier classeur est déjà assez lourd. Voili voilou!

A +
 

clem8756

XLDnaute Nouveau
Re : VBA: problème pour remplir un tableau avec un userform

En fait je viens de faire une petite modif, comme suit, et ça à l'air de marcher!
Quel soulagement! :D:D:D:D:D

Merci beaucoup et bonne fin de journée!


Private Sub CommandButton1_Click()

Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Dim Fichier As String, Repdefaut As String

RepPardefaut = "E:"

Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls), *.xls", , "Sélectionner un fichier.")
If Answer = vbCancel Then Exit Sub
If Fichier <> "" Then
Workbooks.Open Fichier


Dim ws As Worksheet, x As Range, y As Range

If ComboBox1.ListIndex = -1 Then Exit Sub

Set ws = Workbooks("classeur2.xls").Sheets(MonthName(Month(DTPicker1.Value)))
Set x = ws.Columns(2).Find(ComboBox1.Value, , xlValues, xlWhole, , , False)

If Not x Is Nothing Then
Set y = ws.Rows(5).Find(DTPicker1.Value, , xlValues, xlWhole, , , False)
If Not y Is Nothing Then ws.Cells(x.Row, y.Column).Value = TextBox1
End If


End If

Application.ScreenUpdating = True
Application.DisplayAlerts = True


End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : VBA: problème pour remplir un tableau avec un userform

Bonjour,

oui, je précisais que les 2 classeurs devaient être ouverts...
d'autre part, enlève cette ligne d'instruction :
Code:
On Error Resume Next
elle empêche que tu puisses être informé qu'il y a une erreur et autorise la suite de l'exécution du code... ce qui peut être ennuyeux, voir très ennuyeux pour la suite.... il toujours préférable d'éviter et éventuellement de gérer les erreurs...
 

clem8756

XLDnaute Nouveau
Re : VBA: problème pour remplir un tableau avec un userform

Désolée, mais j'ai encore une petite question:

La procédure:
If ComboBox1.ListIndex = -1 Then Exit Sub
me laisse un peu dubitative...

Serait-il possible d'avoir une petite explication? Merci
 

clem8756

XLDnaute Nouveau
Re : VBA: problème pour remplir un tableau avec un userform

Bonjour Pierrot 93 bonjour le forum!

Après plusieurs essais avec la procédure, je rencontre un problème: la valeur du Textbox1 se met dans la bonne colonne mais pas dans la bonne ligne... elle se met toujours en ligne 2! Je ne vois pas où peut se situer le problème???
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 098
Membres
104 031
dernier inscrit
RimeF