OVH Cloud OVH Cloud

VBA copier les valeurs d'une feuille

6 réponses
Avatar
Arzac
Bonsoir
Je desire copier les valeurs et leurs formats d'une feuille dans un nouveau
classeur mais cela ne marche pas.Pourrait-on m'aider. Voici ce que j'ai
ecrit (à partir de l'enregistreur de macros) dans un module auquel est
rattaché un bouton situé dans la feuille à copier:

Sub Copie()
Dim Nom$, Chemin$
'Copie les valeurs dans un autre classeur
Sheets("Cheques").Select
nbEl = Range("A1").Value
Range(Cells(1, 1), Cells(nbEl, 25)).Select
'creer et copier ds le nv classeur
Set NewBook = Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone,
skipblanks:=False, Transpose:=False
'format colonnes et en-tete du nv classeur
Range("A1:U1").Select
Selection.Font.Bold = True
Selection.Interior.ColorIndex = 36
Range(nbEl, "B1").Select
Selection.NumberFormat = "yyyy/mm/dd"
Range(Cells(1, 1), Cells(nbEl, 26)).Select
Selection.Columns.AutoFit
'enregistrement
Nom$ = InputBox("entrez le nom de ce document")
Chemin$ = "C:\Documents and Settings\Mes documents\Cours\inscription"
NomEtChemin = Nom$ & Chemin$
Selection.SaveAs NomEtChemin
end sub

Merci
--
Amicalement
AM

6 réponses

Avatar
Arzac
je viens de voir une erreur :
Range(Cells(2, "B"), Cells(nbEl, "B")).Select
Selection.NumberFormat = "yyyy/mm/dd"
mais ca ne marche tj pas!
Merci de m'aider

"Arzac" a écrit dans le message de news:

Bonsoir
Je desire copier les valeurs et leurs formats d'une feuille dans un
nouveau classeur mais cela ne marche pas.Pourrait-on m'aider. Voici ce que
j'ai ecrit (à partir de l'enregistreur de macros) dans un module auquel
est rattaché un bouton situé dans la feuille à copier:

Sub Copie()
Dim Nom$, Chemin$
'Copie les valeurs dans un autre classeur
Sheets("Cheques").Select
nbEl = Range("A1").Value
Range(Cells(1, 1), Cells(nbEl, 25)).Select
'creer et copier ds le nv classeur
Set NewBook = Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone,
skipblanks:úlse, Transpose:úlse
'format colonnes et en-tete du nv classeur
Range("A1:U1").Select
Selection.Font.Bold = True
Selection.Interior.ColorIndex = 36
Range(nbEl, "B1").Select
Selection.NumberFormat = "yyyy/mm/dd"
Range(Cells(1, 1), Cells(nbEl, 26)).Select
Selection.Columns.AutoFit
'enregistrement
Nom$ = InputBox("entrez le nom de ce document")
Chemin$ = "C:Documents and SettingsMes documentsCoursinscription"
NomEtChemin = Nom$ & Chemin$
Selection.SaveAs NomEtChemin
end sub

Merci
--
Amicalement
AM






Avatar
anomymousA
bonsoir,

ça se plante où exactement ? En examinant ton programme , j'ai déjà
plusieurs doutes sur certaines instructions notamment celle-ci "Range(nbEl,
"B1").Select".Par ailleurs comment vas-tu t'assurer d'un nom de fichier
valide (caractères interdits)...

A+


Bonsoir
Je desire copier les valeurs et leurs formats d'une feuille dans un nouveau
classeur mais cela ne marche pas.Pourrait-on m'aider. Voici ce que j'ai
ecrit (à partir de l'enregistreur de macros) dans un module auquel est
rattaché un bouton situé dans la feuille à copier:

Sub Copie()
Dim Nom$, Chemin$
'Copie les valeurs dans un autre classeur
Sheets("Cheques").Select
nbEl = Range("A1").Value
Range(Cells(1, 1), Cells(nbEl, 25)).Select
'creer et copier ds le nv classeur
Set NewBook = Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone,
skipblanks:úlse, Transpose:úlse
'format colonnes et en-tete du nv classeur
Range("A1:U1").Select
Selection.Font.Bold = True
Selection.Interior.ColorIndex = 36
Range(nbEl, "B1").Select
Selection.NumberFormat = "yyyy/mm/dd"
Range(Cells(1, 1), Cells(nbEl, 26)).Select
Selection.Columns.AutoFit
'enregistrement
Nom$ = InputBox("entrez le nom de ce document")
Chemin$ = "C:Documents and SettingsMes documentsCoursinscription"
NomEtChemin = Nom$ & Chemin$
Selection.SaveAs NomEtChemin
end sub

Merci
--
Amicalement
AM






Avatar
Arzac
Ca plante à la ligne
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone,
skipblanks:úlse, Transpose:úlse
Sinon le nv classeur apparait mais ca ne veut pas coller dedans!

Oui pour Range(nbEl, "B1").Selec j'avais vu juste pares avoir envoyé le mail
l'erreur que j'avais fait.
Merci

"anomymousA" a écrit dans le message
de news:
bonsoir,

ça se plante où exactement ? En examinant ton programme , j'ai déjà
plusieurs doutes sur certaines instructions notamment celle-ci
"Range(nbEl,
"B1").Select".Par ailleurs comment vas-tu t'assurer d'un nom de fichier
valide (caractères interdits)...

A+


Bonsoir
Je desire copier les valeurs et leurs formats d'une feuille dans un
nouveau
classeur mais cela ne marche pas.Pourrait-on m'aider. Voici ce que j'ai
ecrit (à partir de l'enregistreur de macros) dans un module auquel est
rattaché un bouton situé dans la feuille à copier:

Sub Copie()
Dim Nom$, Chemin$
'Copie les valeurs dans un autre classeur
Sheets("Cheques").Select
nbEl = Range("A1").Value
Range(Cells(1, 1), Cells(nbEl, 25)).Select
'creer et copier ds le nv classeur
Set NewBook = Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone,
skipblanks:úlse, Transpose:úlse
'format colonnes et en-tete du nv classeur
Range("A1:U1").Select
Selection.Font.Bold = True
Selection.Interior.ColorIndex = 36
Range(nbEl, "B1").Select
Selection.NumberFormat = "yyyy/mm/dd"
Range(Cells(1, 1), Cells(nbEl, 26)).Select
Selection.Columns.AutoFit
'enregistrement
Nom$ = InputBox("entrez le nom de ce document")
Chemin$ = "C:Documents and SettingsMes documentsCoursinscription"
NomEtChemin = Nom$ & Chemin$
Selection.SaveAs NomEtChemin
end sub

Merci
--
Amicalement
AM









Avatar
anonymousA
re,

j'ai bricolé ta procédure pour la rendre + propre.

Sub Copie()
Dim Nom$, Chemin$
'Prépare la copie des valeurs dans un autre classeur
nbEl = Range("A1").Value
Set rng = Sheets("Cheques").Range(Cells(1, 1), Cells
(nbEl, 25))
rng.Copy
'creer et copier ds le nv classeur
Workbooks.Add
Range("A1").PasteSpecial Paste:=xlPasteValues
'format colonnes et en-tete du nv classeur
With Range("A1:U1")
.Font.Bold = True
.Interior.ColorIndex = 36
End With

Range("A1", "B1").NumberFormat = "yyyy/mm/dd" 'là
j'ai mis une plage au hasard puisqu'il y avait une erreur
'dans ton programme et que
je ne savais pas quelle plage tu voulais selectionner

Range(Cells(1, 1), Cells(nbEl, 26)).Columns.AutoFit

'enregistrement
Nom$ = InputBox("entrez le nom de ce document")
'gestion de l'erreur eventuelle ou d'un Annuler ou d'un
clic sur la croix. C'est pour faire simple. Il ya bien
plus compliqué bien sur
On Error Resume Next
'si ca se passe bien , ca s'enregistre

Chemin$ = "C:Documents and SettingsMes
documentsCoursinscription"
NomEtChemin = Nom$ & Chemin$
Selection.SaveAs NomEtChemin

End Sub

A+

-----Message d'origine-----
je viens de voir une erreur :
Range(Cells(2, "B"), Cells(nbEl, "B")).Select
Selection.NumberFormat = "yyyy/mm/dd"
mais ca ne marche tj pas!
Merci de m'aider

"Arzac" a écrit dans le
message de news:


Bonsoir
Je desire copier les valeurs et leurs formats d'une
feuille dans un


nouveau classeur mais cela ne marche pas.Pourrait-on
m'aider. Voici ce que


j'ai ecrit (à partir de l'enregistreur de macros) dans
un module auquel


est rattaché un bouton situé dans la feuille à copier:

Sub Copie()
Dim Nom$, Chemin$
'Copie les valeurs dans un autre classeur
Sheets("Cheques").Select
nbEl = Range("A1").Value
Range(Cells(1, 1), Cells(nbEl, 25)).Select
'creer et copier ds le nv classeur
Set NewBook = Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues,
operation:=xlNone,


skipblanks:úlse, Transpose:úlse
'format colonnes et en-tete du nv classeur
Range("A1:U1").Select
Selection.Font.Bold = True
Selection.Interior.ColorIndex = 36
Range(nbEl, "B1").Select
Selection.NumberFormat = "yyyy/mm/dd"
Range(Cells(1, 1), Cells(nbEl, 26)).Select
Selection.Columns.AutoFit
'enregistrement
Nom$ = InputBox("entrez le nom de ce document")
Chemin$ = "C:Documents and SettingsMes
documentsCoursinscription"


NomEtChemin = Nom$ & Chemin$
Selection.SaveAs NomEtChemin
end sub

Merci
--
Amicalement
AM








.




Avatar
Arzac
Merci, j'ai essayé malheureusement ca plante à la ligne
Set rng = Sheets("Cheques").Range(Cells(1, 1), Cells(nbEl, 25))
avec le msg "erreur d'execution 1004"
merci pour votre aide c'est sympa
AM


"anonymousA" a écrit dans le message de news:
023801c4f447$55aad190$
re,

j'ai bricolé ta procédure pour la rendre + propre.

Sub Copie()
Dim Nom$, Chemin$
'Prépare la copie des valeurs dans un autre classeur
nbEl = Range("A1").Value
Set rng = Sheets("Cheques").Range(Cells(1, 1), Cells
(nbEl, 25))
rng.Copy
'creer et copier ds le nv classeur
Workbooks.Add
Range("A1").PasteSpecial Paste:=xlPasteValues
'format colonnes et en-tete du nv classeur
With Range("A1:U1")
.Font.Bold = True
.Interior.ColorIndex = 36
End With

Range("A1", "B1").NumberFormat = "yyyy/mm/dd" 'là
j'ai mis une plage au hasard puisqu'il y avait une erreur
'dans ton programme et que
je ne savais pas quelle plage tu voulais selectionner

Range(Cells(1, 1), Cells(nbEl, 26)).Columns.AutoFit

'enregistrement
Nom$ = InputBox("entrez le nom de ce document")
'gestion de l'erreur eventuelle ou d'un Annuler ou d'un
clic sur la croix. C'est pour faire simple. Il ya bien
plus compliqué bien sur
On Error Resume Next
'si ca se passe bien , ca s'enregistre

Chemin$ = "C:Documents and SettingsMes
documentsCoursinscription"
NomEtChemin = Nom$ & Chemin$
Selection.SaveAs NomEtChemin

End Sub

A+

-----Message d'origine-----
je viens de voir une erreur :
Range(Cells(2, "B"), Cells(nbEl, "B")).Select
Selection.NumberFormat = "yyyy/mm/dd"
mais ca ne marche tj pas!
Merci de m'aider

"Arzac" a écrit dans le
message de news:


Bonsoir
Je desire copier les valeurs et leurs formats d'une
feuille dans un


nouveau classeur mais cela ne marche pas.Pourrait-on
m'aider. Voici ce que


j'ai ecrit (à partir de l'enregistreur de macros) dans
un module auquel


est rattaché un bouton situé dans la feuille à copier:

Sub Copie()
Dim Nom$, Chemin$
'Copie les valeurs dans un autre classeur
Sheets("Cheques").Select
nbEl = Range("A1").Value
Range(Cells(1, 1), Cells(nbEl, 25)).Select
'creer et copier ds le nv classeur
Set NewBook = Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues,
operation:=xlNone,


skipblanks:úlse, Transpose:úlse
'format colonnes et en-tete du nv classeur
Range("A1:U1").Select
Selection.Font.Bold = True
Selection.Interior.ColorIndex = 36
Range(nbEl, "B1").Select
Selection.NumberFormat = "yyyy/mm/dd"
Range(Cells(1, 1), Cells(nbEl, 26)).Select
Selection.Columns.AutoFit
'enregistrement
Nom$ = InputBox("entrez le nom de ce document")
Chemin$ = "C:Documents and SettingsMes
documentsCoursinscription"


NomEtChemin = Nom$ & Chemin$
Selection.SaveAs NomEtChemin
end sub

Merci
--
Amicalement
AM








.




Avatar
anomymousA
bonjour,

cette procédure ne se plante ni sur Win XP avec Excel 2000 ni sur Win NT
avec Excel 2000.
Es-tu sur que tu l'as bien recopié de manière à ce que la syntaxe soit
bonne. Si tu veux être sur que celle-ci est correcte, avant de lancer la
macro, vas dans l'éditeur VBA et lange "Déboggage/Compiler". Si Excel te
retourne un message c'est que tu as certaienement mal interprété une
instruction et que tu l'as mal copiée. J'attire ton attention sur le fait
qu'envoyer un message par le forum entraine des passages à la ligne qu'Excel
evidemment ne peut interpréter et qu'il te faut corriger manuellement.

Sur ce, A+


Merci, j'ai essayé malheureusement ca plante à la ligne
Set rng = Sheets("Cheques").Range(Cells(1, 1), Cells(nbEl, 25))
avec le msg "erreur d'execution 1004"
merci pour votre aide c'est sympa
AM


"anonymousA" a écrit dans le message de news:
023801c4f447$55aad190$
re,

j'ai bricolé ta procédure pour la rendre + propre.

Sub Copie()
Dim Nom$, Chemin$
'Prépare la copie des valeurs dans un autre classeur
nbEl = Range("A1").Value
Set rng = Sheets("Cheques").Range(Cells(1, 1), Cells
(nbEl, 25))
rng.Copy
'creer et copier ds le nv classeur
Workbooks.Add
Range("A1").PasteSpecial Paste:=xlPasteValues
'format colonnes et en-tete du nv classeur
With Range("A1:U1")
.Font.Bold = True
.Interior.ColorIndex = 36
End With

Range("A1", "B1").NumberFormat = "yyyy/mm/dd" 'là
j'ai mis une plage au hasard puisqu'il y avait une erreur
'dans ton programme et que
je ne savais pas quelle plage tu voulais selectionner

Range(Cells(1, 1), Cells(nbEl, 26)).Columns.AutoFit

'enregistrement
Nom$ = InputBox("entrez le nom de ce document")
'gestion de l'erreur eventuelle ou d'un Annuler ou d'un
clic sur la croix. C'est pour faire simple. Il ya bien
plus compliqué bien sur
On Error Resume Next
'si ca se passe bien , ca s'enregistre

Chemin$ = "C:Documents and SettingsMes
documentsCoursinscription"
NomEtChemin = Nom$ & Chemin$
Selection.SaveAs NomEtChemin

End Sub

A+

-----Message d'origine-----
je viens de voir une erreur :
Range(Cells(2, "B"), Cells(nbEl, "B")).Select
Selection.NumberFormat = "yyyy/mm/dd"
mais ca ne marche tj pas!
Merci de m'aider

"Arzac" a écrit dans le
message de news:


Bonsoir
Je desire copier les valeurs et leurs formats d'une
feuille dans un


nouveau classeur mais cela ne marche pas.Pourrait-on
m'aider. Voici ce que


j'ai ecrit (à partir de l'enregistreur de macros) dans
un module auquel


est rattaché un bouton situé dans la feuille à copier:

Sub Copie()
Dim Nom$, Chemin$
'Copie les valeurs dans un autre classeur
Sheets("Cheques").Select
nbEl = Range("A1").Value
Range(Cells(1, 1), Cells(nbEl, 25)).Select
'creer et copier ds le nv classeur
Set NewBook = Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues,
operation:=xlNone,


skipblanks:úlse, Transpose:úlse
'format colonnes et en-tete du nv classeur
Range("A1:U1").Select
Selection.Font.Bold = True
Selection.Interior.ColorIndex = 36
Range(nbEl, "B1").Select
Selection.NumberFormat = "yyyy/mm/dd"
Range(Cells(1, 1), Cells(nbEl, 26)).Select
Selection.Columns.AutoFit
'enregistrement
Nom$ = InputBox("entrez le nom de ce document")
Chemin$ = "C:Documents and SettingsMes
documentsCoursinscription"


NomEtChemin = Nom$ & Chemin$
Selection.SaveAs NomEtChemin
end sub

Merci
--
Amicalement
AM








.