Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

fhoest

XLDnaute Accro
Re : Probleme écriture dans feuille

Bonjour,
j'ai télécharger ton fichier mais je n'arrive pas a reproduire ton problème modal,souvent ce problème viens de la gestion d'affichage des usf.je remarque que tu charge et que tu affiche tes usf mais tu ne décharge pas peut être avant de fermer utilisé la commande unload sur les trois usf ou deux ou un a toi de voir.
A+
 
Dernière édition:

moi60

XLDnaute Junior
Re : Probleme écriture dans feuille


Je comprends pas je décharge bien mes USF à chaque fois que je lance un nouveau USF. De plus, lorsque je lance mon fichier il me met l'erreur, j'arrete donc la macro depuis l'interface VBA et la relance, et là, tout roule! C'est vraiment incompréhensible!

Et je vasi t'embeter un peu plus, sais-tu comment faire pour intégrer le calcul de ma colonne D dans ma macro? J'avais pensé à quelque chose du genre ActiveCell.Offset(0, 3).Value = "ComboBox3.Text - combobox2.text" mais je sais que ce code est faux ...

Merci beaucoup,

Moi
 

fhoest

XLDnaute Accro
Re : Probleme écriture dans feuille

Re,
oui il faut mettre ActiveCell.Offset(0, 3).Value = Left(ComboBox3.Value, 2) - Left(ComboBox2.Value, 2) & ":" & Right(ComboBox3.Value, 2) - Right(ComboBox2.Value, 2).

mais je ne peux pas te garantir que cela marche a tous les couts
a toi de tester.
explique comment tu obtiens ton problème modal
A +
 

moi60

XLDnaute Junior
Re : Probleme écriture dans feuille

Merci je vais tester ce code.

Pour mon probleme, enfaite je lance mon fichier, sur mon menu je clic donc sur "Enter new changement of membrane" et je tombe sur mon formulaire. Lorsque je le remplie et clic sur sauvegarder, c'est là qu'il beug ! Il me dit Erreur '401': Impossible d'afficher une feuille non modale lorsqu'une feuille modale est affichée.

Je clic donc sur FIN et relance ma macro grace au bouton lecture (le F5) , je refait la meme opération et là, il fonctionne!

Je ne vois pas pourquoi cela fonctionne le deuxième coup et non pas la première fois car aucune donnée a été changée !

Merci de ton aide,

Moi
 

moi60

XLDnaute Junior
Re : Probleme écriture dans feuille

Le code fonctionne mais il a un petit problème de calcul lorsque l'heure de début est par exemple 23H50 et que la fin est à 00H10, il me met des heures négatives.

Et si j'ai bien compris ton code, tu lui demande de soustraire d'abord les heures, puis les minutes (grace à Left, puis à Right)?
 

fhoest

XLDnaute Accro
Re : Probleme écriture dans feuille

re,
oui c'est bien ça pour le left et le right ,
maintenant essai de supprimer les load et unload utilise juste show et hide cela sera plus simple pour la gestion des usf il est vrai que le load et unload soit parfois nécessaire mais je pense que pour ce que tu fais tu n'en as pas besoins.
Pour les heures négatives je regarde ce que je peux faire
 

moi60

XLDnaute Junior
Re : Probleme écriture dans feuille

Ok merci je vais faire ca alors, mais quel est l'avatange du hide par rapport au unload, et vis versa?

Merci beaucoup de ton aide fhoest,

moi60
 
Dernière édition:

fhoest

XLDnaute Accro
Re : Probleme écriture dans feuille

Voici ce que tu peux faire pour les heures négative
Code:
Dim r1, r2 As Integer
r1 = (Left(ComboBox3.Value, 2) - Left(ComboBox2.Value, 2))
r2 = (Right(ComboBox3.Value, 2) - Right(ComboBox2.Value, 2))
If r1 < 0 Then r1 = 24 + r1
If r2 < 0 Then r2 = 60 + r2
ActiveCell.Offset(0, 3).Value = r1 & ":" & r2
exemple avec 23:50 et 0:25
A bientôt
 

fhoest

XLDnaute Accro
Re : Probleme écriture dans feuille

Ah oui c'est vrai une heure de trop je regarde je pense qu'il faut additionner 23 et non 24
A tout a l'heure.lol
oui c'est ça remplace:
Code:
If r1 < 0 Then r1 = 24 + r1
par
Code:
If r1 < 0 Then r1 = 23+ r1
 
Dernière édition:

moi60

XLDnaute Junior
Re : Probleme écriture dans feuille

C'est ce que je pensais mais j'voulais l'avis d'un expert ;-)

Merci beaucoup de ton aide, j'essaie de régler le problème de USF modale mais je trouve pas.... si quelqu'un a la solution je suis toujours prenneur !

Merci fhoest!

moi60
 

moi60

XLDnaute Junior
Re : Probleme écriture dans feuille

En mettant tout les USF en ShowModal=false cela fonctionne mais justement je ne veux pas que l'on puisse accéder aux feuilles de mon fichier, juste à l'interface...

As-tu une idée de comment résoudre ce problème ?
 

fhoest

XLDnaute Accro
Re : Probleme écriture dans feuille

Essai dans welcome
Code:
Private Sub CommandButton1_Click()
Unload Me
ActiveWorkbook.Save
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
End Sub
c'est difficile pour moi car chez moi je n'ai pas de problème.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…