XL 2016 Les macros d'un formulaire ne fonctionne plus..

stf4-67

XLDnaute Nouveau
Bonjour,

J'ai crée un formulaire qui a comme fonction de verser des données dans un tableau et qui se transforme ensuite en pdf pour un envoi par mail.
J'ai fait des modifications sur les macros et depuis elles ne fonctionnent plus.
Help , je suis a la recherche d'un expert en excel qui pourrait me corriger mon fichier pour qu'il fonctionne a nouveau , mes compétences ne me permette pas d'aller plus loin.

Merci d'avance pour l'aide que vous pourrez m'apporter.

B.D
 

Pièces jointes

  • Classeur1.xlsm
    152.9 KB · Affichages: 40

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Stf,
Sans essayer de tout comprendre, j'ai une première erreur en :
VB:
Worksheets("Demande").Cells(1, 7) = Cells(i - 1, 1) + 1
D'une part je ne comprend pas pourquoi vous aller écrire en G1 de Demande, puisqu'il n'y a apparemment rien.
D'autre part le Cells(i - 1, 1) réfère un numéro d'affaire qui est une chaine de caractères, donc le +1 génère l'erreur #Valeur.
( essayez en Signalements A31 de faire : =A30+1 )

Corrigez celle ci, ça permettra d'avancer.
 

stf4-67

XLDnaute Nouveau
Merci de votre retour , l'idée est de copier les infos contenu dans le formulaire dans demande a la suite de A30 de Signalements.
J'ai également l'erreur que vous avez citée mais je ne sais pas comment faire pour la supprimer...
Les données de signalement ne peut contenir de formule, elles seront écrasées lors de la copie réalisé par la macro .
Le numéro d'affaire doit être incrémenté a chaque nouvelle création du formulaire.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Essayez :
Au début Dim Affaire$, puis
VB:
Affaire = Left(Cells(i - 1, "A"), 5) & Format(Val(Right(Cells(i - 1, "A"), 2) + 1), "00")
Worksheets("Demande").Cells(1, "G") = Affaire

Je préfère la notation Cells(1, "G") au lieu de Cells(1, 7) quand c'est possible, c'est plus parlant.
N'empêche que G1 doit être faux au vu de votre fichier. Peut être Cells(2, "I"), ce qui donnerait I2 ?
 

stf4-67

XLDnaute Nouveau
Essayez :
Au début Dim Affaire$, puis
VB:
Affaire = Left(Cells(i - 1, "A"), 5) & Format(Val(Right(Cells(i - 1, "A"), 2) + 1), "00")
Worksheets("Demande").Cells(1, "G") = Affaire

Je préfère la notation Cells(1, "G") au lieu de Cells(1, 7) quand c'est possible, c'est plus parlant.
N'empêche que G1 doit être faux au vu de votre fichier. Peut être Cells(2, "I"), ce qui donnerait I2 ?

Bonjour sylvanu en incluant la variable ,j'ai une erreur qui s'affiche
VB:
Sub Formulaire()
Dim Affaire$,
Dim i As Integer, machaine As String
 

stf4-67

XLDnaute Nouveau
1608538705916.png


1608538727885.png


il y a toujours une erreur lors de la validation
 

fanfan38

XLDnaute Barbatruc
Il est enregistré: Cells(i, 4) = Sheets("Demande").Range("I7") 'Correspondant
ensuite il est effacé:
If Sheets("Demande").Range("G14") = "Autre à définir" Then
Cells(i, 7) = Worksheets("Demande").Cells(13, 6)
Else
Cells(i, 7) = Sheets("Demande").Range("G14") 'Ouvrage
End If

Pour le reste c'est faisable..
A+ François
 

stf4-67

XLDnaute Nouveau
Il est enregistré: Cells(i, 4) = Sheets("Demande").Range("I7") 'Correspondant
ensuite il est effacé:
If Sheets("Demande").Range("G14") = "Autre à définir" Then
Cells(i, 7) = Worksheets("Demande").Cells(13, 6)
Else
Cells(i, 7) = Sheets("Demande").Range("G14") 'Ouvrage
End If

Pour le reste c'est faisable..
A+ François

J'ai atteins mes limites en programmation , il a trop de chose qui échappent , d'ou mon appel a l'aide.
J'aimerai que mon fichier soit a nouveau opérationnel.
merci d'avoir pris un peu de votre temps pour m'aider.
@+
 

fanfan38

XLDnaute Barbatruc
Bonjour
Une première ébauche de ce que je te propose
double clic sur une ligne de la feuille Signalements pour voir le formulaire
Je présume qu'il faudra sauvegarder aussi le reste des données?
A+ François
PS: Sylvanu je te laisse faire pour les mails : j'ai jamais fait
 

Pièces jointes

  • Classeur1 (1).xlsm
    165.4 KB · Affichages: 6

Discussions similaires

Statistiques des forums

Discussions
311 722
Messages
2 081 930
Membres
101 843
dernier inscrit
Thaly