Création d'un formulaire

Bonjour Grouch

J'ai remarqué que vous avez postez sur un autre forum, je vous invite donc à lire/relire la charte [A LIRE AVANT DE POSTER]
et notamment :

  • Ne postez pas la même question sur un autre forum pour éviter de faire perdre bêtement du temps aux membres sur un problème qui peut être déjà résolu sur l'autre forum. L'inverse est également valable, si vous avez déjà posé votre question sur un autre forum, ne créez pas un doublon sur ce forum (à moins d'avoir clôturé le sujet sur l'autre forum).

Merci de votre compréhension et de votre participation

Cordialement

Bonjour

@Bruno : merci d'avoir veillé au "grain"...

@Grouch : sans le fichier .... puis si vous avez réponse ailleurs, merci de prévenir sur ce fil

Cordialement

Bonjour,

Oui j'ai posté sur un autre forum car je n'avait pas eu de nouvelles sur ce forum lors de ma publication du 06/01, heureusement j'avais un fichier copie qui m'a sauvé la mise.

Désolé je ne m'attendais donc pas à avoir de réponse ici. Je supprime mon poste sur l'autre forum même si j'ai également eu une réponse. (voir ci dessous)

"En fait il suffit de ne créer la feuille CSV que la 1ère fois ...
VB:
...
                         cel.Interior.ColorIndex = 3 'ajout couleur rouge
                         Call Recherche(ShFr, i) 'recherche bateau urgent

                         'Constitution du fichier CSV
                         '¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
                         If WshCSV2 Is Nothing Then
                              'La 1ère fois on crée la feuille
                                 WshCSV.Copy   'Copie la feuille CSV dans un nouveau classeur
                                 Set WshCSV2 = ActiveSheet
                                 WshCSV2.Name = "REBUS" & "_" & Format(Day(Date), "00") & "-" & Format(Month(Date), "00") & "_" & Format(Time, "hhmmss")
                                 LgnCSV = 1
                         End If
                         'Remplissage de la ligne LgnCSV
                         '¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
                         LgnCSV = LgnCSV + 1
                         WshCSV2.Range("A" & LgnCSV) = cel.Offset(0, -11) 'Design
                         WshCSV2.Range("B" & LgnCSV) = cel.Offset(0, -7)  'long
                         WshCSV2.Range("C" & LgnCSV) = cel.Offset(0, -6)  'larg
                         WshCSV2.Range("D" & LgnCSV) = cel.Offset(0, -8)  'ep
                         WshCSV2.Range("E" & LgnCSV) = cel.Offset(0, -9)  'matière
                         WshCSV2.Range("F" & LgnCSV) = cel.Offset(0, 5)   'sdf
                         WshCSV2.Range("G" & LgnCSV) = cel.Offset(0, -4)  'commentaire
                         WshCSV2.Range("H" & LgnCSV) = cel.Offset(0, 6)   'chant1
                         WshCSV2.Range("I" & LgnCSV) = cel.Offset(0, 7)   'Chant2
                         WshCSV2.Range("J" & LgnCSV) = cel.Offset(0, 8)   'Chant3
                         WshCSV2.Range("K" & LgnCSV) = cel.Offset(0, 9)   'chant4
                         WshCSV2.Range("L" & LgnCSV) = cel.Offset(0, 5)   'Meuble
                         WshCSV2.Range("M" & LgnCSV) = cel.Offset(0, 10)  'repère
                         WshCSV2.Range("N" & LgnCSV) = cel.Offset(0, 4)   'Option
                         WshCSV2.Range("O" & LgnCSV) = cel.Offset(0, -15) 'modèle bateau
                         WshCSV2.Range("P" & LgnCSV) = cel.Offset(0, -16) 'num bateau
                         WshCSV2.Range("Q" & LgnCSV) = cel.Offset(0, -10) 'Qté
                        '¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
                     End If
             End Select
             'ref = ""
         Next cel
         .Range("T_BDD").Sort Key1:=Range("T_BDD[Date]"), Header:=xlYes, Order1:=xlAscending 'tri pour remettre BDD par date
     End With

'Sauvegarde du fichier CSV s'il existe
     If Not WshCSV2 Is Nothing Then
          WshCSV2.SaveAs Chemin & "\" & WshCSV2.Name & ".CSV", xlCSV
     End If
...


Voir le classeur joint.
J'ai dû ajouté le préfixe ThisWorkbook dans la ligne suivante :
Code:

...
If cel.Value = "Oui" And cel.Offset(0, -9) & cel.Offset(0, -8) & cel.Offset(0, -13) <> ref Or ref = "" Then
    ThisWorkbook.Sheets("Fiche_relance").Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    Set ShFr = ActiveSheet
    ShFr.Name = "FR" & "_" & Format(Day(Date), "00") & "-" & Format(Month(Date), "00") & "_" & k
...

car je crée directement la copie de l'onglet CSV dans un nouveau Classeur par la méthode Copy sans préciser After ou Before.
Mises à part les déclarations (en particulier la variable Chemin initialisée avec ThisWorkbook.path) et cette ligne je n'ai pas touché au reste de ton code."

Ce poste répond à une grosse partie de mes interrogations. Je cherche à modifier le chemin d'enregistrement mais lorsque je le change le fichier se bloque. Y'a t-il une certaine procédure concernant l'enregistrement ?

Lorsque je partage le fichier on m'indique "service non disponible" comment je peux faire ?

Cordialement,

Grouch

Voila le fichier

Il y a toujours une erreur qui persiste. Lorsque l'on valide les relances sur toutes les pièces de l'onglet BDD, il y 2 onglets FR qui se crééent avec la même épaisseur/coloris/matière (pour le NAUT 2 FACES BLANC en 15mm). Une erreur dans les tris probablement.

Pour le chemin d'enregistrement, je souhaite l'enregistrer sur le chemin : "\\192.168.20.17\csv" mais quand j'indique ce chemin dans le code ça ne fonctionne pas.

Pour le chemin d'enregistrement, je souhaite l'enregistrer sur le chemin : "\\192.168.20.17\csv" mais quand j'indique ce chemin dans le code ça ne fonctionne pas.

Csv c'est un dossier ? C'est un peu curieux comme adresse. Là vous êtes sur un serveur entreprise ?
Est-ce que le fichier crée ne doit pas se placer dans le même répertoire que votre fichier tel que posté ici ?

Bonjour,

Oui serveur entreprise.

Le lien exact est le suivant : \\192.168.20.18\donnees\INFORMATIQUE\Programme_Cn\Roverb2243-serveur\BNEST Liste CSV Exporté\RELANCE - REBUS

(j'avais mis csv pour raccourcir)

L'enregistrement doit se faire en format "xlCSVUTF8" dans le fichier RELANCE - REBU.

Bonjour Grouch, Dan

Pour ce qui concerne le problème suivant

Il y a toujours une erreur qui persiste. Lorsque l'on valide les relances sur toutes les pièces de l'onglet BDD, il y 2 onglets FR qui se crééent avec la même épaisseur/coloris/matière (pour le NAUT 2 FACES BLANC en 15mm). Une erreur dans les tris probablement.

En fait au départ de la procédure, quand Cel.row est égal à 6

ref = ShFr.Cells(3, 3) & ShFr.Cells(4, 3) & ShFr.Cells(3, 6)

Donne : NAUT 2 FACES BLANC15FONCÉ

Alors que

 cel.Offset(0, -9) & cel.Offset(0, -8) & cel.Offset(0, -13)

Donne : NAUT 2 FACES BLANC15CLAIR

Il y a donc un problème dans le code, mais rien à voir avec le tri

Pour l'enregistrement dans le bon chemin, c'est pourtant simple non !?
il faut modifier

Chemin = ThisWorkbook.Path

A+

Bonjour BrunoM45,

Non le code semble bon, car je demande de séparer le foncé du clair. Seulement là, lorsque l'on relance la totalité des pièces dans l'onglet BDD, 2 feuilles différentes se créent pour NAUT 2 FACES BLANC15CLAIR. Elles ne devraient en former qu'une.

Pour le chemin il faut modifier à quel endroit ? je ne comprend pas 🤔

Une fois enregistré le fichier reste ouvert, quel code doit-on rajouter afin qu'il se ferme automatiquement ?

Cordialement

Non le code semble bon, car je demande de séparer le foncé du clair. Seulement là, lorsque l'on relance la totalité des pièces dans l'onglet BDD, 2 feuilles différentes se créent pour NAUT 2 FACES BLANC15CLAIR. Elles ne devraient en former qu'une.

J'ai vu cela mais je sais que vous avez aussi changé des choses dans le code et dans les colonnes à un certain moment par rapport à ce que je vous avais donné au début. Du coup, il faut revoir le fonctionnement total du fichier.

Pour le chemin, au début du code, vous avez mis

Chemin = thisworkbook.path

essayez ceci mais je ne suis pas sûr que l'adressage 192.... va fonctionner

chemin = \\192.168.20.18\donnees\INFORMATIQUE\Programme_Cn\Roverb2243-serveur\BNEST Liste CSV Exporté\RELANCE - REBUS

Dan,

J'ai uniquement rajouté la colonne emplacement. Je ne pense pas que ca change grand chose 🤔

Quand je modifie chemin= \\192... ca ne marche pas non plus

'Sauvegarde du fichier CSV s'il existe
     If Not WshCSV2 Is Nothing Then
          WshCSV2.SaveAs Chemin & "\\192.168.20.18\donnees\INFORMATIQUE\Programme_Cn\Roverb2243-serveur\BNEST Liste CSV Exporté\RELANCE - REBUS" & WshCSV2.Name & ".CSV", xlCSVUTF8
     End If
     Application.ScreenUpdating = True
End Sub

Lorsque je remplace le entre guillemets par le 192.... ça ne fonctionne pas. Y' t-il une autre solution ? ChDir ??

1. Chemin --> Heu vous faites quoi là ????
C'est pas ce que je vous ai dit de faire. relisez mon message

2. Pour votre souci de la création en double de la feuille Relance, il faut modifier la macro trier. Rajoutez cette ligne juste avant le END WITH

.Add Key:=Range("T_Bdd[N° de bateau]"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

Oui, remplacer thisworkbook.path par le lien du serveur. Ca ne marche pas

image

Niquel pour les fiches de relances 👏👌

Salut,

Ta variable chemin est déclarée en tant que String donc à ton avis il manque quoi ?

Salut Jean-Paul,

Je ne voit vraiment pas 😭🤯

il fait mettre les guillemets --> chemin = "\\192.....xxxxxx"

J'ai une question qui ne concerne pas ce fichier mais je ne trouve pas de thème sur ce point.

J'ai un fichier excel en format xml (export d'un logiciel 3D) avec un certain nom Ex "05-06-COURSIVE-PRO". J'aimerai l'exporter automatiquement dans un autre format avec le même nom de fichier. Quel fonction faut-il utiliser ?

Aaaaal parfait merci ca fonctionne. J'ai pas du tout fait attention aux guillements, je cherchais autre chose 😭😭

Bonjour,
Encore 2-3 petites choses à régler sur le fichier.

Lorsque je souhaite "valider la relance" d'uniquement la dernière ligne, le fichier se bloque au niveau du trie par date.

image

Également j'aimerai rajouter la fermeture du fichier WshCSV2 après l'enregistrement avec un MsgBox. J'ai essayé ceci mais ca ne fonctionne pas.

         Next cel
         .Range("T_BDD").Sort Key1:=Range("T_BDD[Date]"), Header:=xlYes, Order1:=xlAscending 'tri pour remettre BDD par date
     End With
     'Sauvegarde du fichier CSV s'il existe
     If Not WshCSV2 Is Nothing Then
          WshCSV2.SaveAs Chemin & "\" & WshCSV2.Name & ".CSV", xlCSVUTF8
          WshCSV2.Close
         Else
            MsgBox ("CSV enregistré avec le fichier \RELANCE - REBUS")
     End If
     Application.ScreenUpdating = True
End Sub

En cas de problème, est-ce possible de mettre un second MsgBox "Aucun fichier n'a été enregistré" ?

Cordialement

Bonjour

1. Lorsque je souhaite "valider la relance" d'uniquement la dernière ligne, le fichier se bloque au niveau du trie par date.

Logique : votre fichier actif est le CSV. il manque un point dans la ligne.

A l'instruction "Key1:" mettez un point juste après le signe =

2. Également j'aimerai rajouter la fermeture du fichier WshCSV2 après l'enregistrement avec un MsgBox. J'ai essayé ceci mais ca ne fonctionne pas.

Votre code comme ceci :

     If Not WshCSV2 Is Nothing Then
          WshCSV2.SaveAs Chemin & "\" & WshCSV2.Name & ".CSV", xlCSVUTF8
          ActiveWorkbook.Close
          MsgBox "CSV enregistré avec le fichier \RELANCE - REBUS"
         Else
           MsgBox "Aucun fichier CSV enregistré"
     End If

Cordialement

Bonjour,

La fonction Activeworkbook.Close ne fonctionne pas, elle veut me fermer le fichier "listing relance nautitech" au lieu de fermer le fichier créé.

La fonction Key1 fonctionne bien avec le point après le = 👌✔

Cordialement

Rechercher des sujets similaires à "creation formulaire"