Remplir une zone

Bonjour,

Hier Dan m'a proposé une macro que j''ai voulu modifier, pour que l'utilisateur saisisse le jour, le mois, l'année et une libéllé et que ensuite la cellule B1 contienne la date et la cellule B2, le libellé.

Voila la macro

Sub Import_de_Paie()

Dim chemin As String, Fichier As String, extension As String, a As String, j As String, m As String, t As String

chemin = "C:\"

extension = ".txt"

j = InputBox("taper votre jour de comptabilisation de la transaction (JJ sans espace)")

m = InputBox("taper votre mois de comptabilisation de la transaction (MM sans espace)")

a = InputBox("taper votre Année de comptabilisation de la transaction (AAAA sans espaces)")

t = InputBox("taper votre libellé de la transaction")

'remplissage de la zone date de transaction

Range("b1").Select = j & "/" & m & "/" & a

'remplissage de la zone libellé de la transaction

Range("b2").Select = t

Fichier = "PAIE" & m & a

On Error GoTo message

Open chemin & Fichier & extension For Input As #1

Remplissage_fichier

Exit Sub

message:

MsgBox "Le fichier n'existe pas ou vous n'avez pas respecté la systaxe MMAAAA"

End Sub

Mes problèmes sont :

1 - le remplissage de la cellule B1 et B2 ne fonctionne pas

2 - Est-il possible de limité la saisie de j à 2 car numériques, m à 2 car numériques et a à 4 car numériques ?

Merci

Oui, tu peux, avec la fonction len.

Sub Import_de_Paie() 

Dim chemin As String, Fichier As String, extension As String, a As String, j As String, m As String, t As String 
chemin = "C:\" 
extension = ".txt" 
j = InputBox("taper votre jour de comptabilisation de la transaction (JJ sans espace)") 
if j.len>2 then msgbox "Merci de ne taper que 2 caractères !"
m = InputBox("taper votre mois de comptabilisation de la transaction (MM sans espace)") 
a = InputBox("taper votre Année de comptabilisation de la transaction (AAAA sans espaces)") 
t = InputBox("taper votre libellé de la transaction") 
'remplissage de la zone date de transaction 
Range("b1").Select = j & "/" & m & "/" & a 
'remplissage de la zone libellé de la transaction 
Range("b2").Select = t 
Fichier = "PAIE" & m & a 
On Error GoTo message 
Open chemin & Fichier & extension For Input As #1 
Remplissage_fichier 
Exit Sub 
message: 
MsgBox "Le fichier n'existe pas ou vous n'avez pas respecté la systaxe MMAAAA" 
End Sub 

Attention, je débute en VBA, je ne peux donc pas te certifier que cela fonctionne. Il y aura peut être un créer une procédure plutôt que de mettre la fonction len là où je l'ai mise.

Bonjour,

quand tu associes inputbox à application, tu peux lui définir un type de valeur, regarde dans l'aide pour liste. Dans ton cas, le type 1 pour des nombres. Il reste juste à tester la longueur de la chaine.

SaisieJour:
    j = ApplicationInputBox("taper votre jour de comptabilisation de la transaction (JJ sans espace)", Type:=1)
    If j = "Faux" Then
        Exit Sub
    Else
        If Len(j) > 2 Then
            MsgBox "Vous devez entrer 2 nombres."
            GoTo SaisieJour
        End If
    End If
5fiche-sav3-1.xlsm (198.23 Ko)

petite erreur, c'est "Application.InputBox", j'avais oublié le point

ça marchera effectivement bien mieux que ma propo... J'ai encore à progresser...

Merci pour votre aide, pouvez-vous également m'expliquer pourquoi ette partie la ne fonctionne pas ?

'remplissage de la zone date de transaction

Range("b1").Select = j & "/" & m & "/" & a

'remplissage de la zone libellé de la transaction

Range("b2").Select = t

Cordialement

Peut être qu'en mettant des majuscules sur tes noms de cellules, ça fonctionnera mieux. Mais ça n'est pas garanti.

Bonjour à tous,

évite les .select

inutiles dans ton cas et qui ralentissent la macro.

Range("b2") = t

suffit, et pareil pour B1

Amicalement

Claude.

11fiche-sav3-1.xlsm (203.11 Ko)

merci

Rechercher des sujets similaires à "remplir zone"