vba et saisie

  • Initiateur de la discussion Hélène
  • Date de début
H

Hélène

Guest
Bonsoir le forum
J'ai une macro qui permet de remplir une feuille via un usf

A chaque oubli :textbox3 option button1(cds) option button2(dvds) optionbutton3(dvdgraves)
combobox1 et combobox5 il y a un message qui doit apparaitre
Les autres textbox ne serevent qu'à récupérer des informations
Tout fonctionne sauf pour les options button 1 2 et 3 soit (cds dvds dvdgraves)

L'erreur se situe entre les signes ====


Voici la macro :


Private Sub CommandButton2_Click()
If UserForm2.TextBox3 = '' Then
MsgBox 'Veuillez saisir la date', vbInformation, 'DVDTHEQUE'
UserForm2.TextBox3.SetFocus
Exit Sub
End If
===============================================
If UserForm2.CDS = False Or UserForm2.DVDS = False Or UserForm2.dvdgraves = False Then
MsgBox 'Veuillez sélectionner cd, dvd ou dvd grave', vbInformation, 'DVDTHEQUE'
UserForm2.CDS.SetFocus
UserForm2.DVDS.SetFocus
UserForm2.dvdgraves.SetFocus
Exit Sub
End If
===============================================



If UserForm2.ComboBox1.ListIndex = -1 Then
MsgBox 'Veuillez sélectionner le titre du film', vbInformation, 'DVDTHEQUE'
UserForm2.ComboBox1.SetFocus
Exit Sub
End If

If UserForm2.ComboBox5.ListIndex = -1 Then
MsgBox 'Veuillez sélectionner l'emprunteur', vbInformation, 'DVDTHEQUE'
UserForm2.ComboBox5.SetFocus
Exit Sub
End If



Sheets('PRET').Range('C65536').End(xlUp).Offset(1, 0).Value = ComboBox1.Value
Sheets('PRET').Range('D65536').End(xlUp).Offset(1, 0).Value = TextBox4.Value
Sheets('PRET').Range('E65536').End(xlUp).Offset(1, 0).Value = TextBox5.Value
Sheets('PRET').Range('F65536').End(xlUp).Offset(1, 0).Value = TextBox6.Value
Sheets('PRET').Range('G65536').End(xlUp).Offset(1, 0).Value = TextBox3.Value
Sheets('PRET').Range('H65536').End(xlUp).Offset(1, 0).Value = ComboBox5.Value



ComboBox1 = ''
TextBox4 = ''
TextBox5 = ''
TextBox6 = ''
TextBox3 = ''
ComboBox5 = ''
End Sub

Si quelqu'un pouvait m'aider à résoudre ce problème ce serait sympa de sa part
Bonne soirée
Hélène
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

je suppose que tu as le choix entre 1 des 3

mais dans ta ligne

If UserForm2.CDS = False Or UserForm2.DVDS = False Or UserForm2.dvdgraves = False Then

elle sera toujours exact cette condition car tu en auras toujours au moins deux de vide

remplace donc tes Or par des And

Sinon pas trop compris tes focus sur tes options buttons
 
H

Hélène

Guest
Bonsoir le forum et Pascal 76

Merci pour ta réponse très rapide
En fait j'ai récupéré ce code et je l'ai en partie adapté sans il est vrai forcément tout comprendre mais en décorticant et en posant des questions j'avance.Petit à petit l'oiseau fait son nid .....
Merci pour cette aide

Bonne soirée
Hélène
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

Sinon je vois un autre problème dans ton code

Tu ne verifies pas que tes textbox 4 5 et 6 soient remplis. Pas de problème

Mais tu remplis tes colonnes D E F sur ta première ligne non vide. Mais cette ligne ne sera peut-être pas la m^me que la colonne C par exemple

a ta place je ferais ceci

Maligne=Sheets('PRET').Range('C65536').End(xlUp).Row +1
Sheets('PRET').Range('C' & maligne)= ComboBox1.Value
Sheets('PRET').Range('D' & maligne) = TextBox4.Value
Sheets('PRET').Range('E' & maligne) = TextBox5.Value
Sheets('PRET').Range('F' & maligne) = TextBox6.Value
Sheets('PRET').Range('G' & maligne) = TextBox3.Value
Sheets('PRET').Range('H' & maligne) = ComboBox5.Value
 
H

hélène

Guest
Bonjour le forum
Bonjour Pascal76
Merci pour tes réponses

Je ne test pas 3 textbox car les info proviennent d'un autre tableau ou les informations sont saisies de la même façon à savoir à partir d'un usf ou la validation ne peut se faire que si toutes les textbox combobox sont renseignées et par conséquent les informations sont toutes reportées sur la même ligne

Est ce suffisant à ton avis ou dois je refaire pour adopter ta méthode?
Je garde ton code bien au chaud
Merci pour tout

Bonne journée
Hélène
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Non si tu es sûre de toi tu n'auras pas de problème mais c'est vrai qu'à titre perso je trouve plus .... je ne sais pas quoi ... de recuperer la ligne et de rentrer ensuite toutes mes valeurs sur cette ligne comme dans mon exemple. Mais ce n'est que personnel et par habitude mais je me mefie toujours d'une case vide qui vient te faire un décalage quelconque dans les colonnes

Bonne journée
 

Discussions similaires

Réponses
6
Affichages
248
Réponses
11
Affichages
297

Statistiques des forums

Discussions
312 305
Messages
2 087 081
Membres
103 457
dernier inscrit
fab2614