Interdir la saisie de ";" dans tout les textbox

  • Initiateur de la discussion Thomas®
  • Date de début
T

Thomas®

Guest
Bonjour le forum,

comme vous le demandé si souvent

je vous joint un fichier zip

en fait comme je le dis dans le sujet je cherche a interdire la saisie de ';' dans un textbox

et au passage j'ai une autre question,
en effet en voulant faire un USF pour exposé ma question j'ai pensé faire une boucle

for i = 1 to 4 ' car j'ai 4 textbox

For i = 1 To 4
'Cells(ligne, i) = TextBox(i)

'Next i

mais cela ne marche pas pour autant il me s'emble avoir vu un truck qui resemble à cela.

D'avance merci
Thomas [file name=thomas.zip size=11416]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/thomas.zip[/file]
 

Pièces jointes

  • thomas.zip
    7.2 KB · Affichages: 15
  • thomas.zip
    7.2 KB · Affichages: 14
  • thomas.zip
    7.2 KB · Affichages: 16

Hervé

XLDnaute Barbatruc
Bonjour

Pour la première question , à copier pour chaque textbox :

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 59 Then KeyAscii = 0
End Sub

Pour la deuxième :

Private Sub CommandButton1_Click()
Dim ligne As Long
ligne = Sheets(1).Range('A65536').End(xlUp).Row + 1
For i = 1 To 4
Cells(ligne, i) = Controls('TextBox' & i)
Next i
End Sub

PS :
comme vous le demandé si souvent

je vous joint un fichier zip

OUI :) , au bout d'un certain temps la création d'userform n'est plus amusante. lol

Salut
 
T

Thomas®

Guest
Bonjour Hervé, le forum,

Merci pour ta reponse,

penses tu que ceci est possible

For Each ctrl In Me.Controls 'Pour tous les contrôles
If TypeName(ctrl) = 'TextBox' And ctrl.Visible = True Then
If KeyAscii = 59 Then KeyAscii = 0
end if
end if

directement dans ma sub ?

D'avance merci
Thomas®
 

Hervé

XLDnaute Barbatruc
Bonjour

Pas sur d'avoir tout compris, mais si tu veux boucler sur les textbox avant de renvoyer les valeurs dans les cellules, pour supprimer le caractère ; alors utilise cette macro :

Code:
Private Sub CommandButton1_Click()
Dim ligne As Long
Dim i As Byte
Dim ctrl As Control
Dim temp

For Each ctrl In Me.Controls 'Pour tous les contrôles
    If TypeName(ctrl) = 'TextBox' And ctrl.Visible = True Then
        For i = 1 To Len(ctrl)
            If Mid(ctrl, i, 1) <> '' Then
                If Asc(Mid(ctrl, i, 1)) = 59 Then
                    ctrl = Left(ctrl, i - 1) & Mid(ctrl, i + 1)
                End If
            End If
        Next i
    End If
Next ctrl

ligne = Sheets(1).Range('A65536').End(xlUp).Row + 1
For i = 1 To 4
Cells(ligne, i) = Controls('TextBox' & i)
Next i

End Sub


Par contre si tu veux appliquer cette meme macro à tes 4 textbox sans avoir à saisir 4 macros, tu ne peux pas utiliser ce type de code.

Il faut passer par un module de classe, mais je pense que c'est utiliser un marteau pilon pour écraser une mouche :)

mais si tu veux un modèle, hésites pas à le dire .

Salut
 
T

Thomas®

Guest
Bonjour Hérvé, le forum,

Merci Hervé,

c'est ce que je cherché :)

enfait j'ai deja un post d'ouvert :

Lien supprimé

mais plus personne pour m'aidé, :( (vu le nombre de message il est vrais que cela decourage)

dans ce post j'explique mon projet

dont j'ai deja fait mon USF qui fonctionne sans probléme.

mais mon besoin est que je dois permetre à plusieurs personne de travailer sur un seul fichier source.

au depart je pensais utiliser un fichier excel qui serait fermé comme fichier de reference.

mais avec excel 97 la technologie ADO c'est pas top top car c'est long et les enregistrement ne sont pas toujours sur les bonnes lignes.


Comme j'ai vraiment besoin de mettre en place ce genre de structure, j'ai pensé a non plus utilisé un fichier excel fermé mais un fichier text (1 par feuille) d'o&ugrave; ma demande d'empécher la saisie de ';' qui seront mais separateur pour mon fichier text.

Pour exporter mes donnés j'ai fait cette macro mais elle ne repond pas à mes besoin


:pinch:


Code:
Sub export()

    On Error Resume Next
    Sheets(VarMois).Select
    Cells.Select
    Selection.Copy
    Workbooks.Add
    ActiveSheet.Paste
    Range('A1').Select
    Application.CutCopyMode = False
    ActiveWorkbook.SaveAs FileName:='D:\\thomas\\Mes documents\\' & VarMois & '.txt', _
        FileFormat:=xlText, CreateBackup:=False
    ActiveWindow.Close
    Sheets('HISTO').Select
End Sub

dans cette macro la variable VarMois est declaré public dans un modul puis valorisé par un combobox dans mon USF

ce que j'aimerais c'est que la separation de mes cellule ce face par un ';' mais je n'ai pas trouvé comment.

je suis desolé pour la piece joint mais mon fichier est sup à 50ko et je ne peux plus le reduire.

mon fichier est dans le post cité plus haut

D'avance merci
Thomas

Ps : vous allez trouvé ma macro étrange pour l'export en text mais je n'ai pas trouvé d'autre facon de faire en gardant mon fichier initial en cours (anomalie1.xls)
 

Hervé

XLDnaute Barbatruc
re

j'ai pas tout compris à ta facon de procéder, mais pour copier les valeurs d'un onglet dans un fichier text, tu peux utiliser ce type de macro :

Code:
Sub Bouton1_QuandClic()
Dim tablo As Variant
Dim texte As String
Dim i As Long
Dim j As Byte
Dim fichier
Dim varmois As String

varmois = 'septembre'

fichier = Application.GetSaveAsFilename(varmois, fileFilter:='Text Files (*.txt), *.txt')
If fichier = False Then Exit Sub

With Sheets(varmois)
    tablo = .Range('A1:D' & .Range('A65536').End(xlUp).Row)
End With
Open fichier For Output As #1

    For i = 1 To UBound(tablo, 1)
          For j = 1 To 4
            texte = texte & tablo(i, j) & Chr(59)
          Next j
          Print #1, texte
          texte = ''
    Next i

Close #1
End Sub

ce type de macro transforme un tablo variant en fichier texte avec comme séparateur le ;

il te faut bien sur adapter l'enregistrement du fichier text, moi je suis passer par un getsave... pour plus de facilité.

en espérant ne pas etre trop à coté de la plaque , lol

Salut
 
T

Thomas®

Guest
Bonjour, Hervé, le forum,

Merci c'est exactement ce que je recherche

Là je n'ai pas le temps de tester mais tu m'as l'air d'avoir exactement pigé ce que je recherche.

un grand merci

si jamais tu as l'occasion de regarder le fichier du lien dont je parle tu me diras ce que tu en penses.

Bonne soirée
Thomas&reg;
 

Discussions similaires

Statistiques des forums

Discussions
312 391
Messages
2 087 954
Membres
103 683
dernier inscrit
Cescodelvar