Bonjour =E0 tous,
J'ai besoin pour mon travail de cr=E9er une macro. Le probleme est qu'il
faut passer par du VBA et que je suis assez nul dans ce domaine ma
sp=E9cialit=E9 =E9tant le php
Voici mon probleme:
Classeur 1 avec des donn=E9es, les colonnes sont fixes ( disons 6
colonnes) mais les lignes sont variables entre 1 =E0 5 lignes maximum.
Classeur 2 avec les donn=E9es du classeur 1.
Je souhaiterai grace =E0 une macro, copier les donn=E9es du classeur 1
sur le classeur 2 mais sans jamais ecraser les donn=E9es qui pourraient
d=E9j=E0 y =EAtre pr=E9sente et donc =E0 la suite.
=20
J'espere =EAtre assez clair.
Voici une solution, Le classeur2 peut être ouvert ou fermé Pense bien à modifier le nom des fichiers en macro tu peux enlever les apostrophes en bas pour sauver et fermer Classeur2 qui n'apparait pas à l'écran Si tu connait pas bien, fait insertion module et tu copie tout Youky
Sub mycopy() Application.ScreenUpdating = False bas = [A:G].Find("*", , 1, , 1, 2).Row Range("A1:G" & bas).Copy On Error Resume Next Windows("Classeur2.xls").Activate If Err <> 0 Then Workbooks.Open Filename:="Classeur2.xls" Err.Clear End If With Workbooks("Classeur2.xls") lig = [A:G].Find("*", , 1, , 1, 2).Row + 1 Range("A" & lig).Select ActiveSheet.Paste End With 'ActiveWorkbook.Save 'ActiveWorkbook.Close savechanges:=True Application.ScreenUpdating = True Windows("Classeur1.xls").Activate End Sub
a écrit dans le message de news:
Bonjour à tous, J'ai besoin pour mon travail de créer une macro. Le probleme est qu'il faut passer par du VBA et que je suis assez nul dans ce domaine ma spécialité étant le php Voici mon probleme:
Classeur 1 avec des données, les colonnes sont fixes ( disons 6 colonnes) mais les lignes sont variables entre 1 à 5 lignes maximum.
Classeur 2 avec les données du classeur 1.
Je souhaiterai grace à une macro, copier les données du classeur 1 sur le classeur 2 mais sans jamais ecraser les données qui pourraient déjà y être présente et donc à la suite.
J'espere être assez clair.
Voici une solution,
Le classeur2 peut être ouvert ou fermé
Pense bien à modifier le nom des fichiers en macro
tu peux enlever les apostrophes en bas pour sauver et fermer Classeur2
qui n'apparait pas à l'écran
Si tu connait pas bien, fait insertion module et tu copie tout
Youky
Sub mycopy()
Application.ScreenUpdating = False
bas = [A:G].Find("*", , 1, , 1, 2).Row
Range("A1:G" & bas).Copy
On Error Resume Next
Windows("Classeur2.xls").Activate
If Err <> 0 Then
Workbooks.Open Filename:="Classeur2.xls"
Err.Clear
End If
With Workbooks("Classeur2.xls")
lig = [A:G].Find("*", , 1, , 1, 2).Row + 1
Range("A" & lig).Select
ActiveSheet.Paste
End With
'ActiveWorkbook.Save
'ActiveWorkbook.Close savechanges:=True
Application.ScreenUpdating = True
Windows("Classeur1.xls").Activate
End Sub
<malach@free.fr> a écrit dans le message de news:
1153814289.651537.220290@i3g2000cwc.googlegroups.com...
Bonjour à tous,
J'ai besoin pour mon travail de créer une macro. Le probleme est qu'il
faut passer par du VBA et que je suis assez nul dans ce domaine ma
spécialité étant le php
Voici mon probleme:
Classeur 1 avec des données, les colonnes sont fixes ( disons 6
colonnes) mais les lignes sont variables entre 1 à 5 lignes maximum.
Classeur 2 avec les données du classeur 1.
Je souhaiterai grace à une macro, copier les données du classeur 1
sur le classeur 2 mais sans jamais ecraser les données qui pourraient
déjà y être présente et donc à la suite.
Voici une solution, Le classeur2 peut être ouvert ou fermé Pense bien à modifier le nom des fichiers en macro tu peux enlever les apostrophes en bas pour sauver et fermer Classeur2 qui n'apparait pas à l'écran Si tu connait pas bien, fait insertion module et tu copie tout Youky
Sub mycopy() Application.ScreenUpdating = False bas = [A:G].Find("*", , 1, , 1, 2).Row Range("A1:G" & bas).Copy On Error Resume Next Windows("Classeur2.xls").Activate If Err <> 0 Then Workbooks.Open Filename:="Classeur2.xls" Err.Clear End If With Workbooks("Classeur2.xls") lig = [A:G].Find("*", , 1, , 1, 2).Row + 1 Range("A" & lig).Select ActiveSheet.Paste End With 'ActiveWorkbook.Save 'ActiveWorkbook.Close savechanges:=True Application.ScreenUpdating = True Windows("Classeur1.xls").Activate End Sub
a écrit dans le message de news:
Bonjour à tous, J'ai besoin pour mon travail de créer une macro. Le probleme est qu'il faut passer par du VBA et que je suis assez nul dans ce domaine ma spécialité étant le php Voici mon probleme:
Classeur 1 avec des données, les colonnes sont fixes ( disons 6 colonnes) mais les lignes sont variables entre 1 à 5 lignes maximum.
Classeur 2 avec les données du classeur 1.
Je souhaiterai grace à une macro, copier les données du classeur 1 sur le classeur 2 mais sans jamais ecraser les données qui pourraient déjà y être présente et donc à la suite.
J'espere être assez clair.
Malach
Hello Cela ne fonctionne pas il me retourne une erreur 9 ici bas = [A:G].Find("*", , 1, , 1, 2).Row
J ai fais cela et cela fonctionne, mais pouvez vous commenter ?? Sub gen_BD() ' ' test Macro ' Macro enregistrée le 25/07/2006 par Maia ' ' Range("A2:F" & [A65536].End(xlUp).Row).Copy Workbooks.Open Filename:= _ "C:Documents and SettingsMaiaMes documentstest2.xls" Range("A65536").End(xlUp)(2).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :úlse, Transpose:úlse Application.CutCopyMode = False ActiveWorkbook.Save ActiveWindow.Close End Sub
Voici une solution, Le classeur2 peut être ouvert ou fermé Pense bien à modifier le nom des fichiers en macro tu peux enlever les apostrophes en bas pour sauver et fermer Classeur2 qui n'apparait pas à l'écran Si tu connait pas bien, fait insertion module et tu copie tout Youky
Sub mycopy() Application.ScreenUpdating = False bas = [A:G].Find("*", , 1, , 1, 2).Row Range("A1:G" & bas).Copy On Error Resume Next Windows("Classeur2.xls").Activate If Err <> 0 Then Workbooks.Open Filename:="Classeur2.xls" Err.Clear End If With Workbooks("Classeur2.xls") lig = [A:G].Find("*", , 1, , 1, 2).Row + 1 Range("A" & lig).Select ActiveSheet.Paste End With 'ActiveWorkbook.Save 'ActiveWorkbook.Close savechanges:=True Application.ScreenUpdating = True Windows("Classeur1.xls").Activate End Sub
Hello
Cela ne fonctionne pas
il me retourne une erreur 9 ici
bas = [A:G].Find("*", , 1, , 1, 2).Row
J ai fais cela et cela fonctionne, mais pouvez vous commenter ??
Sub gen_BD()
'
' test Macro
' Macro enregistrée le 25/07/2006 par Maia
'
'
Range("A2:F" & [A65536].End(xlUp).Row).Copy
Workbooks.Open Filename:= _
"C:Documents and SettingsMaiaMes documentstest2.xls"
Range("A65536").End(xlUp)(2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
Voici une solution,
Le classeur2 peut être ouvert ou fermé
Pense bien à modifier le nom des fichiers en macro
tu peux enlever les apostrophes en bas pour sauver et fermer Classeur2
qui n'apparait pas à l'écran
Si tu connait pas bien, fait insertion module et tu copie tout
Youky
Sub mycopy()
Application.ScreenUpdating = False
bas = [A:G].Find("*", , 1, , 1, 2).Row
Range("A1:G" & bas).Copy
On Error Resume Next
Windows("Classeur2.xls").Activate
If Err <> 0 Then
Workbooks.Open Filename:="Classeur2.xls"
Err.Clear
End If
With Workbooks("Classeur2.xls")
lig = [A:G].Find("*", , 1, , 1, 2).Row + 1
Range("A" & lig).Select
ActiveSheet.Paste
End With
'ActiveWorkbook.Save
'ActiveWorkbook.Close savechanges:=True
Application.ScreenUpdating = True
Windows("Classeur1.xls").Activate
End Sub
Hello Cela ne fonctionne pas il me retourne une erreur 9 ici bas = [A:G].Find("*", , 1, , 1, 2).Row
J ai fais cela et cela fonctionne, mais pouvez vous commenter ?? Sub gen_BD() ' ' test Macro ' Macro enregistrée le 25/07/2006 par Maia ' ' Range("A2:F" & [A65536].End(xlUp).Row).Copy Workbooks.Open Filename:= _ "C:Documents and SettingsMaiaMes documentstest2.xls" Range("A65536").End(xlUp)(2).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :úlse, Transpose:úlse Application.CutCopyMode = False ActiveWorkbook.Save ActiveWindow.Close End Sub
Voici une solution, Le classeur2 peut être ouvert ou fermé Pense bien à modifier le nom des fichiers en macro tu peux enlever les apostrophes en bas pour sauver et fermer Classeur2 qui n'apparait pas à l'écran Si tu connait pas bien, fait insertion module et tu copie tout Youky
Sub mycopy() Application.ScreenUpdating = False bas = [A:G].Find("*", , 1, , 1, 2).Row Range("A1:G" & bas).Copy On Error Resume Next Windows("Classeur2.xls").Activate If Err <> 0 Then Workbooks.Open Filename:="Classeur2.xls" Err.Clear End If With Workbooks("Classeur2.xls") lig = [A:G].Find("*", , 1, , 1, 2).Row + 1 Range("A" & lig).Select ActiveSheet.Paste End With 'ActiveWorkbook.Save 'ActiveWorkbook.Close savechanges:=True Application.ScreenUpdating = True Windows("Classeur1.xls").Activate End Sub
Youky
Re, Maia 1er cas pour l'erreur 9 tu as peut être Excel 97, je viens de tester dessus et en faite ca bug. Si les données à copier font pas la vague on test sur col A et parfait comme tu as fais cela ne va pas si A4 est vide et B4 ou C4 ou D5 ont une valeur
2eme cas tu lances la macro depuis un userform et là il faut spécifier le nom de l'onglet ou le code name ex: Feuil1.[A:G]......ou [nomonglet!A:G]... Tout est Ok sauf que tu as enlevé la gestion de l'erreur de l'ouverture du fichier Si un jour il reste ouvert et que tu lances la macro......test. Cela m'interesse de connaitre ta version Excel ..moi c'est 2000 Youky
"Malach" a écrit dans le message de news:
Hello Cela ne fonctionne pas il me retourne une erreur 9 ici bas = [A:G].Find("*", , 1, , 1, 2).Row
J ai fais cela et cela fonctionne, mais pouvez vous commenter ?? Sub gen_BD() ' ' test Macro ' Macro enregistrée le 25/07/2006 par Maia ' ' Range("A2:F" & [A65536].End(xlUp).Row).Copy Workbooks.Open Filename:= _ "C:Documents and SettingsMaiaMes documentstest2.xls" Range("A65536").End(xlUp)(2).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :úlse, Transpose:úlse Application.CutCopyMode = False ActiveWorkbook.Save ActiveWindow.Close End Sub
Voici une solution, Le classeur2 peut être ouvert ou fermé Pense bien à modifier le nom des fichiers en macro tu peux enlever les apostrophes en bas pour sauver et fermer Classeur2 qui n'apparait pas à l'écran Si tu connait pas bien, fait insertion module et tu copie tout Youky
Sub mycopy() Application.ScreenUpdating = False bas = [A:G].Find("*", , 1, , 1, 2).Row Range("A1:G" & bas).Copy On Error Resume Next Windows("Classeur2.xls").Activate If Err <> 0 Then Workbooks.Open Filename:="Classeur2.xls" Err.Clear End If With Workbooks("Classeur2.xls") lig = [A:G].Find("*", , 1, , 1, 2).Row + 1 Range("A" & lig).Select ActiveSheet.Paste End With 'ActiveWorkbook.Save 'ActiveWorkbook.Close savechanges:=True Application.ScreenUpdating = True Windows("Classeur1.xls").Activate End Sub
Re, Maia
1er cas pour l'erreur 9
tu as peut être Excel 97, je viens de tester dessus et en faite ca bug.
Si les données à copier font pas la vague on test sur col A et parfait comme
tu as fais
cela ne va pas si A4 est vide et B4 ou C4 ou D5 ont une valeur
2eme cas tu lances la macro depuis un userform et là il faut spécifier le
nom
de l'onglet ou le code name ex: Feuil1.[A:G]......ou [nomonglet!A:G]...
Tout est Ok sauf que tu as enlevé la gestion de l'erreur de l'ouverture du
fichier
Si un jour il reste ouvert et que tu lances la macro......test.
Cela m'interesse de connaitre ta version Excel ..moi c'est 2000
Youky
"Malach" <malach@free.fr> a écrit dans le message de news:
1153907771.629135.197290@h48g2000cwc.googlegroups.com...
Hello
Cela ne fonctionne pas
il me retourne une erreur 9 ici
bas = [A:G].Find("*", , 1, , 1, 2).Row
J ai fais cela et cela fonctionne, mais pouvez vous commenter ??
Sub gen_BD()
'
' test Macro
' Macro enregistrée le 25/07/2006 par Maia
'
'
Range("A2:F" & [A65536].End(xlUp).Row).Copy
Workbooks.Open Filename:= _
"C:Documents and SettingsMaiaMes documentstest2.xls"
Range("A65536").End(xlUp)(2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
Voici une solution,
Le classeur2 peut être ouvert ou fermé
Pense bien à modifier le nom des fichiers en macro
tu peux enlever les apostrophes en bas pour sauver et fermer Classeur2
qui n'apparait pas à l'écran
Si tu connait pas bien, fait insertion module et tu copie tout
Youky
Sub mycopy()
Application.ScreenUpdating = False
bas = [A:G].Find("*", , 1, , 1, 2).Row
Range("A1:G" & bas).Copy
On Error Resume Next
Windows("Classeur2.xls").Activate
If Err <> 0 Then
Workbooks.Open Filename:="Classeur2.xls"
Err.Clear
End If
With Workbooks("Classeur2.xls")
lig = [A:G].Find("*", , 1, , 1, 2).Row + 1
Range("A" & lig).Select
ActiveSheet.Paste
End With
'ActiveWorkbook.Save
'ActiveWorkbook.Close savechanges:=True
Application.ScreenUpdating = True
Windows("Classeur1.xls").Activate
End Sub
Re, Maia 1er cas pour l'erreur 9 tu as peut être Excel 97, je viens de tester dessus et en faite ca bug. Si les données à copier font pas la vague on test sur col A et parfait comme tu as fais cela ne va pas si A4 est vide et B4 ou C4 ou D5 ont une valeur
2eme cas tu lances la macro depuis un userform et là il faut spécifier le nom de l'onglet ou le code name ex: Feuil1.[A:G]......ou [nomonglet!A:G]... Tout est Ok sauf que tu as enlevé la gestion de l'erreur de l'ouverture du fichier Si un jour il reste ouvert et que tu lances la macro......test. Cela m'interesse de connaitre ta version Excel ..moi c'est 2000 Youky
"Malach" a écrit dans le message de news:
Hello Cela ne fonctionne pas il me retourne une erreur 9 ici bas = [A:G].Find("*", , 1, , 1, 2).Row
J ai fais cela et cela fonctionne, mais pouvez vous commenter ?? Sub gen_BD() ' ' test Macro ' Macro enregistrée le 25/07/2006 par Maia ' ' Range("A2:F" & [A65536].End(xlUp).Row).Copy Workbooks.Open Filename:= _ "C:Documents and SettingsMaiaMes documentstest2.xls" Range("A65536").End(xlUp)(2).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :úlse, Transpose:úlse Application.CutCopyMode = False ActiveWorkbook.Save ActiveWindow.Close End Sub
Voici une solution, Le classeur2 peut être ouvert ou fermé Pense bien à modifier le nom des fichiers en macro tu peux enlever les apostrophes en bas pour sauver et fermer Classeur2 qui n'apparait pas à l'écran Si tu connait pas bien, fait insertion module et tu copie tout Youky
Sub mycopy() Application.ScreenUpdating = False bas = [A:G].Find("*", , 1, , 1, 2).Row Range("A1:G" & bas).Copy On Error Resume Next Windows("Classeur2.xls").Activate If Err <> 0 Then Workbooks.Open Filename:="Classeur2.xls" Err.Clear End If With Workbooks("Classeur2.xls") lig = [A:G].Find("*", , 1, , 1, 2).Row + 1 Range("A" & lig).Select ActiveSheet.Paste End With 'ActiveWorkbook.Save 'ActiveWorkbook.Close savechanges:=True Application.ScreenUpdating = True Windows("Classeur1.xls").Activate End Sub