Insertion dans un fichier Excel à partir d'un TextBox

Résolu
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 - 29 avril 2007 à 16:52
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 - 29 avril 2007 à 22:27
Bonjour à tous,


Je vous explique ce que je voudrais faire.


Dans mon fichier Excel, dans <st1:personname productid="la colonne A" w:st="on">la
colonne A</st1:personname>, contient des noms. Dans <st1:personname productid="la colonne B" w:st="on">la colonne B</st1:personname>, le numéro de
permis de conduire.

Dans <st1:personname productid="la colonne C" w:st="on">la colonne C</st1:personname>,
je vais devoir entrer un mois d'expiration.


Maintenant, j'ai fait un UserForm avec 1 ComboBox qui  sélectionne la
plage (ComboBox1.RowSource = "A1:A1000" )


Maintenant quand je clique sur le bouton2, il m'affiche dans le TextBox1 selon
le nom contenu dans le ComboBox1, le numéro de permis du chauffeur.


Jusque là, je n'ai pas de problème.


Maintenant, c'est là que ça se corse.


Je voudrais être capable par la suite, d'insérer un mois que j'inscris dans le
TextBox2 et en cliquant sur le bouton 3, il va s'insérer à la bonne ligne dans <st1:personname productid="la colonne C.??E" w:st="on">la colonne C.


E</st1:personname>st-ce possible?


Comment puis-je y arriver?

5 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 22
29 avril 2007 à 19:47
Oups... une erreur de ma part, il faut ajouter 1 à ListIndex parce que le Combobox commence ses Index à 0 et la feuille à 1

Note: tu mets beaucoup de ScreenUpdating = False... mais le remets-tu à True ?

Voici ton code qui fonctionne ici
Option Explicit

Private Sub CommandButton2_Click()
    Dim Valeur As String
   
    Valeur = ComboBox1.Text
   
    Sheets("Feuil1").Select
    Range("A1").Select
   
    ActiveSheet.Cells.Find(What:=Valeur, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
    xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
    .Activate
    'Numéro du permis
    TextBox1 = ActiveCell.Offset(0, 1).Text
End Sub

Private Sub CommandButton3_Click()
    Range("C" & ComboBox1.ListIndex + 1) = TextBox3
End Sub

Private Sub UserForm_Initialize()
    Sheets("Feuil1").Select
    ComboBox1.RowSource = "A1:A5" 'ta plage de données
End Sub

MPi
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 22
29 avril 2007 à 17:46
En principe, si tu n'as pas trié ton Combobox, le ListIndex  = Ligne
Donc,
Range("C" & Combobox1.ListIndex) = MaDate

MPi
0
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 3
29 avril 2007 à 18:32
Merci MPI,

J'ai inserer :
Range("C" & ComboBox1.ListIndex) = TextBox2.Text qui egale ex: "AVRIL" .

Par-contre il me donne un erreur: Range("A") = <La méthode 'Range' de l'objet'_Global' a échoué>

Dans le userform j'ai mit:

Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Sheets("Feuil1").Select
ComboBox1.RowSource = "A1:A5" 'ta plage de données
If ComboBox1.Value = "A1" Then
End If
End Sub

Ensuite dans le bouton2:
Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
Valeur = ComboBox1.Text

Sheets("Feuil1").Select
Range("A1").Select

ActiveSheet.Cells.Find(What:=Valeur, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate
'Numéro du permis
TextBox1 = ActiveCell.Offset(0, 1).Text
End Sub

Maintenant je choisis un nom dans le ComboBox1, une fois avoir cliqué sur le bouton2, dans le TextBox1 il me donne le permis. J'insert dans le testBox3 exemple: "Avril", et je clique sur le bouton 3 qui insert dans la bonne ligne de la colone C.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
29 avril 2007 à 21:09
Et je dirai même plus, si la ligne 1 sur Excel représente des entêtes de colonne (marqués par exemple en gras noms, date, etc..), c'est donc + 2 qu'il faut faire.

En tout cas, sois vigilent sur une chose : en cas de doublons d'un nom...

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 3
29 avril 2007 à 22:27
Merci beaucoup à vous 2, ça fonctionne très bien.

En passant Mortalino, J'ai écrit:
Private Sub CommandButton3_Click()
    Range("C" & ComboBox1.ListIndex + 1) = TextBox3
End Sub

Et pourtant, j'ai des  entêtes de colonne, et ça fonctionne.

Je sais pas pourquoi, mais bon. Au moins tous fonctionne.

Merci beaucoup à vous 2 et bonne fin de semaine.
0
Rejoignez-nous