Problème dans code Macro enregistrement dans tableau

Bonjour,

Dans la macro suivant, l'enregistrement des données, ce fait correctement dans un tableau dans un autre fichier excel.

Par contre je pense qu'il doit me manquer un ligne qui dit que

"enregistrement dans la ligne après la dernière ligne remplie"

car pour l'instant si je transfert une autre fiche d'anomalie, elle s'enregistre sur la première ligne en écrasant les données précédentes.

Je pense que le souci se situ dans le code ci-dessous.

Dim WSsource As Worksheet, WScible As Worksheet
Dim L As Long
Dim Référence As String
Dim Plage As Range, Cell As Range

Set WSsource = ThisWorkbook.Worksheets("fiche")
Set WScible = Workbooks("Gestion des anomalies").Worksheets("Tableau")

Référence = nomFichier

L = WScible.Range("A65536").End(xlUp).Row + 1

Set Plage = WScible.Range("A3:A" & WScible.Range("A65536").End(xlUp).Row)

For Each Cell In Plage
If Cell = Référence Then
L = Cell.Row
End If
Next

Merci d'avance pour vos réponses

Marie

Bonjour,

Il faudrait savoir comment on fonctionne par rapport au fichier.

C'est le code "enregistrer" en premier puis "transferer" en deuxième ??

Sinon à première vue je vois trois soucis

- dans le code "enregister", il manque l'extension ".xlsm" ou ".xlsx" dans le fichier sauvé.

le code corrigé sous excel 2007 :

With Sheets("Fiche")
nomFichier = "ANO-" & .Range("K2") & .Range("K3") & .Range("K4") & "-" & .Range("F3") & "-" & .Range("C4") & ".xlsm"
End With

- L est déclaré après "reference = nom fichier" puis modifié dans la boucle "For each....next" puisqu'il devient L = cell.row

Donc à quoi sert cette boucle ??

- reference = nomfichier ne devrait rien donner puisque "nomfichier" n'a pas de valeur définie dans le code.

Merci de donner quelques explications complémentaires. J'adapterai le code en fonction.

Amicalement

Bonjour,

Merci pour votre réponse. J'ai corrigé le code pour le nom du fichier en ajoutant l'extension.

Effectivement il y a deux actions possibles : dans un premier temps enregistrer l'anomalie et dans un second temps et pas par la même personne : transfert vers un tableau.

J'adapte les deux mêmes macro mais c'est encore dans un document différent.

J'ai un souci avec le code enregistrer, je pense que c'est une erreur de chemin d'accès mais je ne suis pas süre :

Sub Enregistrer()
SaveAuthorized = True
With Sheets("Fiche NC")
nomFichier = Sheets("Fiche NC").Range("C3").Value & "NC" & Sheets("Fiche NC").Range("C9").Value & ".xlsm"
End With
ActiveWorkbook.SaveAs Filename:="\\SERVEUR01\Partage\Système de Management\Document du Système de Management\Processus MESURES - MES\Non-conformité\NC enregistrées\" & nomFichier
SaveAuthorized = False
End Sub

Je regarde pour la boucle avec L et référence et je reviens vers vous.

Merci de m'aider,

Marie

41nc-vierge-2.xlsm (32.01 Ko)

Re,

1.Il faut connaitre le répertoire exact pour l'enregistrement.

  • Quel est-il ??
  • Est-ce que répertoire est le même que celui dans lequel se trouve le fichier contenant cette macro ?

2.J'avais modifié le code précédemment ....

With Sheets("Fiche NC")
nomFichier = Range("C3") & "NC" & Range("C9") & ".xlsm"
End With

A corriger donc dans le fichier

A vous relire

Effectivement c'est le même répertoire que celui dans lequel se trouve le fichier contenant cette macro. pourquoi ça pourrait simplifier la macro ?

Et je corrige le code

Merci pour votre réponse

Re,

avec ce code :

Sub Enregistrer()
Dim nomfichier As String
SaveAuthorized = True
With Sheets("Fiche NC")
nomfichier = .Range("C3") & "NC" & .Range("C9") & ".xls"
End With
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & nomfichier
SaveAuthorized = False
End Sub

Si ok, il restera à voir le souci de L décrit plus haut.

C'est bon j'ai résolu mon problème, ça marche merci beaucoup.

Je ferme ce sujet et j'en ouvre un autre pour mes questions sur la seconde marco se sera plus clair pour tous le monde.

Merci Dan pour ton aide

Rechercher des sujets similaires à "probleme code macro enregistrement tableau"