Probleme écriture dans feuille

moi60

XLDnaute Junior
Bonjour à tout le forum,

Ma macro me donne de gros problème que je n'arrive pas à résoudre. J'ai créer un userform qui me sert de formulaire qui, grace à un bouton sauvegarder, m'écris tout dans une feuille excel. Le problème est qu'il me marque qu'il y a un problème modal, or je ne vois pas d'où vient le problème. De plus, lorsque je relance la macro sans fermer le fichier, tout roule! Je suis vraiment perdu!

De plus, je voudrai pouvoir remplir la colonne D automatiquement c'est à dire faire la soustraction des deux temps précédemment entrés (car pour l'instant j'ai écris la formule 'à la main' mais je voudrais le faire directement depuis ma macro, avec le bouton sauvegarder).

Si vous pouviez m'aider, ca m'enlèverai une grosse épine du pied!

Merci d'avance de votre aide,

Cijoint.fr - Service gratuit de dépôt de fichiers

moi60
 

moi60

XLDnaute Junior
Re : Probleme écriture dans feuille

Je vais être encore un peu plus exigeant ! =)

Lorsque j'appuie sur le bouton save on voit apparaître derriere la feuille DATA le temps que le programme remplisse les différentes cellules. Est-il possible de n'avoir que la page blanche en fond même lors de l'écriture (c'est à dire la page 'acceuil')?

Merci de votre aide,

Bonne après midi à tous,

moi60
 

fhoest

XLDnaute Accro
Re : Probleme écriture dans feuille

Bonsoir,
voici la solution a ton problème:
Code:
'Encodage de la saisie en cas de pression sur le bouton enregistrer
Private Sub CommandSave_Click()
Dim intLine, r1, r2 As Integer

Application.ScreenUpdating = False
With Sheets("data")
intLine = .Range("A10000").End(xlUp).Row + 1
.Range("a" & intLine).Value = TextBoxDate.Text
.Range("b" & intLine).Value = ComboBox2.Text
.Range("c" & intLine).Value = ComboBox3.Text
r1 = (Left(ComboBox3.Value, 2) - Left(ComboBox2.Value, 2))
r2 = (Right(ComboBox3.Value, 2) - Right(ComboBox2.Value, 2))
If r1 < 0 Then r1 = 23 + r1
If r2 < 0 Then r2 = 60 + r2
.Range("d" & intLine).Value = r1 & ":" & r2
.Range("e" & intLine).Value = ComboBox1.Text
.Range("h" & intLine).Value = TextBoxCOMMENTAIRE.Text
'Sheets("accueil").Select
MsgBox "Data Saved"
End With
Application.ScreenUpdating = True
Unload UserForm1
Load welcome
welcome.Show
End Sub

Bonne nuit.:)
 

fhoest

XLDnaute Accro
Re : Probleme écriture dans feuille

Bonjour
Sur quel ligne tu as le problème modal ???
ton fichier en retour pour le problème modal , à tester
A+
 

Pièces jointes

  • moi60_fhoest.xlsm
    121.6 KB · Affichages: 35
Dernière édition:

moi60

XLDnaute Junior
Re: Re : Probleme écriture dans feuille

Le problème n'apparaît pas toujours au même endroit (car je vous ai fait suivre que la moitié de mon programme, il y a une autre partie d'extraction de données) et toujours au même moment.

J'ai rentré quelques autres données et j'ai l'impression que ca n'arrive plus.

merci de ton aide,

J'vais me prendre la tête maintenant pour définir une position précise à ma souris ^^ (c'est le problème avec Excel, plus on arrive à faire des choses, plus on est exigent =D )
 

fhoest

XLDnaute Accro
Re : Probleme écriture dans feuille

Que veux tu dire avec positionnement de la souris es ce le curseur que tu veux positionner ou l'ordre de tabulation...
pour le curseur c'est SETFOCUS,et tabulation c'est TABSTOP=true + tabindex = n° ordre. de tabulation.
 

moi60

XLDnaute Junior
Re: Re : Probleme écriture dans feuille

J'utilise déjà le setfocus mais je voudrai que le pointeur de la souris se déplace sur ma combobox ou textbox. J'avais trouvé sur un autre post que l'on pouvait utilisé les coordonnées du pointeur mais comme la résolution de chaque écran n'est pas la même, les coordonnées des box changent elles aussi et lorsque je passe d'un pc à un autre, la souris ne se retrouve pas au même endroit.
 

fhoest

XLDnaute Accro
Re : Probleme écriture dans feuille

Voici ce que je ferais
Code:
'a mettre dans un module
Declare Function SetCursorPos& Lib "User32" (ByVal X As Long, ByVal Y As Long)
Declare Function GetSystemMetrics32 Lib "User32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
'a mettre dans l'initialize ou ailleurs
' définit le point zéro height et left reste a mettre la position de l'objet
'dans setcursorpos ...+object.top,...+object.left

Dim ScreenW, ScreenH As Long
Dim point_zero_height_userform, point_zero_left_userform As Long
Const convert = 1.33


ScreenW = GetSystemMetrics32(0)
ScreenH = GetSystemMetrics32(1)

point_zero_left_userform = (ScreenW / 2) - ((Me.Width * convert) / 2)
point_zero_height_userform = (ScreenH / 2) - ((Me.Height * convert) / 2)

SetCursorPos point_zero_left_userform, point_zero_height_userform
A+
 

moi60

XLDnaute Junior
Re: Re : Probleme écriture dans feuille

Salut tout le monde,

J'espère que vous avez passer un bon weekend,

Merci pour ton code fhoest, je vais le regarder plus en détail car je n'arrive pas bien à l'utiliser.

J'ai regarder ce weekend si ma macro fonctionnais bien, et je me suis apercu qu'il y avait un problème d'enregistrement. En effet, si la date choisie à un jour inférieur à 12, alors le problème m'écris mm/dd/yyyy dans excel, sinon il m'écris dd/mm/yyyy

J'ai regarder tous mon code d'enregistrement, je ne vois pas de problème, j'ai regarder en pas à pas, et le format de la textbox est bien en dd/mm/yyyy. Je me suis donc dit que cela venait du format date choisi pour la colonne A mais rien n'y fait le problème persiste. Pouvez-vous m'éclairer s'il vous plait?

EDIT: J'ai trouvé ce code sur un site, mais je ne sais comment l'utiliser, il me manques quelques variable comme le j ...
Code:
Sub test()
Dim f As long
dim w as string
f = 1
Do While Cells(f, 1).Value <> ""
    If day(Cells(f, 1)) < 13 then
       w = format(cells(j,1),"DD/MM/YYYY")
       cells(f,1) = cdate(mid(x,4,2) & "/" & left(w,2) & "/" & right(w,4))
    end if
    f = f + 1
Loop
end sub

Merci d'avance,

Moi60
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 825
Membres
104 677
dernier inscrit
soufiane12