OVH Cloud OVH Cloud

renvoie a la ligne

3 réponses
Avatar
tdm850
Bonjour,
chaque fois que j'enregistre un dossier, je veux copier dans un autre
fichier 3, 4 valeurs ( numero de dossier, nom, prix ) en A1, A2, A3.
le probleme est que je veux enregistrer ces valeurs sur une ligne differente
a chaque fois ( ligne 1 (pour dossier 1, A1, A2, A3), ligne 2 ( pour dossier
2, B1, B2, B3), etc .....
avez vous une solution ??????????
merci

3 réponses

Avatar
Trirème
Bonjour tdm850

J'ai ce petit bout de code à te proposer

Sub EcrireLog()
' Écriture ligne dans fichier (et onglet) appelé "Log"
' Le classeur "Log" est censé être ouvert et l'onglet "Log" doit exister
'
DerCelLog = Workbooks("Log").Worksheets("Log"). _
Range("A65536").End(xlUp).Row + 1
Sheets("Log").Range("A" & DerCelLog) = Variable1 ' A définir pour
' N°dossier
Sheets("Log").Range("B" & DerCelLog) = Variable2 ' A définir...
Sheets("Log").Range("C" & DerCelLog) = Variable3 ' A définir...
Sheets("Log").Range("D" & DerCelLog) = Now ' Date
et heure pour 'horodatage
' ...
End Sub

Cordialement
Trirème

Bonjour,
chaque fois que j'enregistre un dossier, je veux copier dans un autre
fichier 3, 4 valeurs ( numero de dossier, nom, prix ) en A1, A2, A3.
le probleme est que je veux enregistrer ces valeurs sur une ligne differente
a chaque fois ( ligne 1 (pour dossier 1, A1, A2, A3), ligne 2 ( pour dossier
2, B1, B2, B3), etc .....
avez vous une solution ??????????
merci


Avatar
tdm850
Bonsoir Tirème,
je n'arrive pas a faire fonctionner ta formule.
peux tu essayer de me la reecrire sachant que je copie les cellules
A1,B1, C1, D1 et que mon fichier destination est "livrecommande"
tu me dis que mon fichier livrecommande doit etre ouvert, OK
et tu me parle d'un onglet !!!
dois je creer un onglet? et dans quelle feuilles ???
merci pour ton aide


Bonjour tdm850

J'ai ce petit bout de code à te proposer

Sub EcrireLog()
' Écriture ligne dans fichier (et onglet) appelé "Log"
' Le classeur "Log" est censé être ouvert et l'onglet "Log" doit exister
'
DerCelLog = Workbooks("Log").Worksheets("Log"). _
Range("A65536").End(xlUp).Row + 1
Sheets("Log").Range("A" & DerCelLog) = Variable1 ' A définir pour
' N°dossier
Sheets("Log").Range("B" & DerCelLog) = Variable2 ' A définir...
Sheets("Log").Range("C" & DerCelLog) = Variable3 ' A définir...
Sheets("Log").Range("D" & DerCelLog) = Now ' Date
et heure pour 'horodatage
' ...
End Sub

Cordialement
Trirème

Bonjour,
chaque fois que j'enregistre un dossier, je veux copier dans un autre
fichier 3, 4 valeurs ( numero de dossier, nom, prix ) en A1, A2, A3.
le probleme est que je veux enregistrer ces valeurs sur une ligne differente
a chaque fois ( ligne 1 (pour dossier 1, A1, A2, A3), ligne 2 ( pour dossier
2, B1, B2, B3), etc .....
avez vous une solution ??????????
merci





Avatar
Trirème
Bonjour tdm
Voila quelque chose plus proche de ce que tu attends.
Ton fichier "livrecommande" recevra les informations dans un onglet qui
est appelé ci-dessous "Log", tu adapteras.
Au début de la macro, s'il n'est pas ouvert, la macro l'ouvre. Mais il
doit exister au préalable.

Sub EcrireLog()
' Écrire des informations dans un fichier à la façon d'un Log
'
Dim ShLog As Worksheet
Dim FichCourant As Worksheet
Dim DerCelLog As Integer
Dim Repertoire As String
Dim NomClasseur As String
Dim NomDeSauvegarde As String

' Ouverture du fichier destiné à recevoir les écritures (livrecommande)
Repertoire = "C:Mes DocumentsExcel" ' A adapter
NomClasseur = "livrecommande.xls" ' Ce classeur aura été créé avec un
onglet "Log" (à adapter)
On Error Resume Next
If Workbooks(NomClasseur) Is Nothing Then ' Tester fichier déjà ouvert
Workbooks.Open Repertoire & NomClasseur ' Doit exister sur le disque
End If
Set ShLog = Workbooks(NomClasseur).Sheets("Log") ' "Raccourci" vers
l'onglet destinataire

'------- Ici, la macro travaille sur un dossier en cours de mise à jour
(commande...)
Workbooks.Add ' Création
NomDeSauvegarde = "MonFichierAMoi" ' Nommage
[A1] = "Numéro x" ' Remplissage
[B1] = NomDeSauvegarde
[C1] = "Prix..."
[D1] = "Blablabla"
ActiveWorkbook.SaveAs Filename:=NomDeSauvegarde 'Penser à préciser le
répertoire, sinon c'est le répertoire courant
Set FichCourant = ActiveWorkbook.ActiveSheet ' "Raccourci"
'------------------------------------------------------------------------------

' Puis on passe à l'écriture dans le fichier "livrecommande"
DerCelLog = ShLog.Range("A65536").End(xlUp).Row + 1
' Je récupère les cellules une à une car elles pourraient être
dispersées sur la feuille d'origine
ShLog.Range("A" & DerCelLog) = FichCourant.[A1]
ShLog.Range("B" & DerCelLog) = FichCourant.[B1]
ShLog.Range("C" & DerCelLog) = FichCourant.[C1]
ShLog.Range("D" & DerCelLog) = FichCourant.[D1]
ShLog.Range("E" & DerCelLog) = Now ' Horodatage

'On peut maintenant fermer le classeur
ActiveWindow.Close

End Sub

Cordialement
Trirème