Insertion dans un fichier Excel à partir d'un TextBox [Résolu]

Signaler
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Statut
Membre
Dernière intervention
3 janvier 2012
-
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Statut
Membre
Dernière intervention
3 janvier 2012
-
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

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
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
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
En principe, si tu n'as pas trié ton Combobox, le ListIndex  = Ligne
Donc,
Range("C" & Combobox1.ListIndex) = MaDate

MPi
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Statut
Membre
Dernière intervention
3 janvier 2012
3
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.
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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~
  
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Statut
Membre
Dernière intervention
3 janvier 2012
3
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.