Bonjour à toutes et tous,
Juste un petit problème dont j'ai du mal à me sortir et auquel je
n'ai pas trouvé réponse dans les archives du forum.
Dans un fichier, j'ai 9 feuilles appeler Feuil1 - Feuil2 - Feuil3
jusqu'à Feuil9 + une feuille de calcul faisant référence à ces 9
feuilles.
9 fois au cours de l'année, je dois copier dans ce fichier des
données en provenance d'un autre fichier.
Mon idée est de :
- Tester s'il y a déjà des informations sur la Feuil1. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil2.
- Tester s'il y a déjà des informations sur la Feuil2. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil3.
- Ainsi de suite jusqu'à la feuille 9.
Je ne sais pas comment le traduire en VBA.
Merci de vos idées.
Jacques
Bonjour à toutes et tous,
Juste un petit problème dont j'ai du mal à me sortir et auquel je
n'ai pas trouvé réponse dans les archives du forum.
Dans un fichier, j'ai 9 feuilles appeler Feuil1 - Feuil2 - Feuil3
jusqu'à Feuil9 + une feuille de calcul faisant référence à ces 9
feuilles.
9 fois au cours de l'année, je dois copier dans ce fichier des
données en provenance d'un autre fichier.
Mon idée est de :
- Tester s'il y a déjà des informations sur la Feuil1. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil2.
- Tester s'il y a déjà des informations sur la Feuil2. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil3.
- Ainsi de suite jusqu'à la feuille 9.
Je ne sais pas comment le traduire en VBA.
Merci de vos idées.
Jacques
Bonjour à toutes et tous,
Juste un petit problème dont j'ai du mal à me sortir et auquel je
n'ai pas trouvé réponse dans les archives du forum.
Dans un fichier, j'ai 9 feuilles appeler Feuil1 - Feuil2 - Feuil3
jusqu'à Feuil9 + une feuille de calcul faisant référence à ces 9
feuilles.
9 fois au cours de l'année, je dois copier dans ce fichier des
données en provenance d'un autre fichier.
Mon idée est de :
- Tester s'il y a déjà des informations sur la Feuil1. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil2.
- Tester s'il y a déjà des informations sur la Feuil2. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil3.
- Ainsi de suite jusqu'à la feuille 9.
Je ne sais pas comment le traduire en VBA.
Merci de vos idées.
Jacques
Bonjour et merci pour ta réponse.
J'ai fait un essai rapide : je viens de mettre le code que tu m'as donné avec
celui obtenu avec l'enregistreur de macro.
J'ai obtenu ceci :
Sub Macro1()
'
Application.ScreenUpdating = False
Cells.Select
Selection.Copy
Workbooks.Open FileName:= _
"C:jacqueshFORMATION INFOCHANTIERSTestCopie2.xls"
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
If Application.WorksheetFunction.CountA(f.Cells) = 0 Then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlValues
Exit Sub
End If
Next
MsgBox "aucune des feuilles n'est vide d'informations"
End Sub
Je pense qu'il y a un problème avec la fonction "coller" car la Macro bloque sur
la ligne "ActiveSheet.Paste".
Peux-tu m'indiquer quelques pistes.
Merci d'avance.
Jacquesbonjour,
'tu déclares ton tableau de Feuil1 à Feuil9 sur le modéle suivant puis tu
parcours les éléments du tableau pour trouver la feuille qui est sans infos (
entendons-nous, ici on teste que ce qu'il y a dans les cellules. S'il y a un
objet ( graphique ou autre), ce n'est pas testé). Si il y a une feuille vide
d'info , on copie ce qui vient du fichier ( je suppose que tu as pris la
peine de faire l'opération de chargement en mémoire des données à copier pour
pouvoir le réalilser dans la boucle for si une feuille est vide). Si aucune
des feuilles n'est vide, alors tu auras le message te l'indiquant.
sub copiefeuillesnonvides
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
if Application.WorksheetFunction.CountA(f.Cells)=0 then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
exit sub
end if
Next
msgbox "aucune des feuilles n'est vide d'informations
end sub
A+Bonjour à toutes et tous,
Juste un petit problème dont j'ai du mal à me sortir et auquel je
n'ai pas trouvé réponse dans les archives du forum.
Dans un fichier, j'ai 9 feuilles appeler Feuil1 - Feuil2 - Feuil3
jusqu'à Feuil9 + une feuille de calcul faisant référence à ces 9
feuilles.
9 fois au cours de l'année, je dois copier dans ce fichier des
données en provenance d'un autre fichier.
Mon idée est de :
- Tester s'il y a déjà des informations sur la Feuil1. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil2.
- Tester s'il y a déjà des informations sur la Feuil2. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil3.
- Ainsi de suite jusqu'Ã la feuille 9.
Je ne sais pas comment le traduire en VBA.
Merci de vos idées.
Jacques
Bonjour et merci pour ta réponse.
J'ai fait un essai rapide : je viens de mettre le code que tu m'as donné avec
celui obtenu avec l'enregistreur de macro.
J'ai obtenu ceci :
Sub Macro1()
'
Application.ScreenUpdating = False
Cells.Select
Selection.Copy
Workbooks.Open FileName:= _
"C:jacqueshFORMATION INFOCHANTIERSTestCopie2.xls"
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
If Application.WorksheetFunction.CountA(f.Cells) = 0 Then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlValues
Exit Sub
End If
Next
MsgBox "aucune des feuilles n'est vide d'informations"
End Sub
Je pense qu'il y a un problème avec la fonction "coller" car la Macro bloque sur
la ligne "ActiveSheet.Paste".
Peux-tu m'indiquer quelques pistes.
Merci d'avance.
Jacques
bonjour,
'tu déclares ton tableau de Feuil1 à Feuil9 sur le modéle suivant puis tu
parcours les éléments du tableau pour trouver la feuille qui est sans infos (
entendons-nous, ici on teste que ce qu'il y a dans les cellules. S'il y a un
objet ( graphique ou autre), ce n'est pas testé). Si il y a une feuille vide
d'info , on copie ce qui vient du fichier ( je suppose que tu as pris la
peine de faire l'opération de chargement en mémoire des données à copier pour
pouvoir le réalilser dans la boucle for si une feuille est vide). Si aucune
des feuilles n'est vide, alors tu auras le message te l'indiquant.
sub copiefeuillesnonvides
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
if Application.WorksheetFunction.CountA(f.Cells)=0 then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
exit sub
end if
Next
msgbox "aucune des feuilles n'est vide d'informations
end sub
A+
Bonjour à toutes et tous,
Juste un petit problème dont j'ai du mal à me sortir et auquel je
n'ai pas trouvé réponse dans les archives du forum.
Dans un fichier, j'ai 9 feuilles appeler Feuil1 - Feuil2 - Feuil3
jusqu'à Feuil9 + une feuille de calcul faisant référence à ces 9
feuilles.
9 fois au cours de l'année, je dois copier dans ce fichier des
données en provenance d'un autre fichier.
Mon idée est de :
- Tester s'il y a déjà des informations sur la Feuil1. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil2.
- Tester s'il y a déjà des informations sur la Feuil2. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil3.
- Ainsi de suite jusqu'Ã la feuille 9.
Je ne sais pas comment le traduire en VBA.
Merci de vos idées.
Jacques
Bonjour et merci pour ta réponse.
J'ai fait un essai rapide : je viens de mettre le code que tu m'as donné avec
celui obtenu avec l'enregistreur de macro.
J'ai obtenu ceci :
Sub Macro1()
'
Application.ScreenUpdating = False
Cells.Select
Selection.Copy
Workbooks.Open FileName:= _
"C:jacqueshFORMATION INFOCHANTIERSTestCopie2.xls"
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
If Application.WorksheetFunction.CountA(f.Cells) = 0 Then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlValues
Exit Sub
End If
Next
MsgBox "aucune des feuilles n'est vide d'informations"
End Sub
Je pense qu'il y a un problème avec la fonction "coller" car la Macro bloque sur
la ligne "ActiveSheet.Paste".
Peux-tu m'indiquer quelques pistes.
Merci d'avance.
Jacquesbonjour,
'tu déclares ton tableau de Feuil1 à Feuil9 sur le modéle suivant puis tu
parcours les éléments du tableau pour trouver la feuille qui est sans infos (
entendons-nous, ici on teste que ce qu'il y a dans les cellules. S'il y a un
objet ( graphique ou autre), ce n'est pas testé). Si il y a une feuille vide
d'info , on copie ce qui vient du fichier ( je suppose que tu as pris la
peine de faire l'opération de chargement en mémoire des données à copier pour
pouvoir le réalilser dans la boucle for si une feuille est vide). Si aucune
des feuilles n'est vide, alors tu auras le message te l'indiquant.
sub copiefeuillesnonvides
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
if Application.WorksheetFunction.CountA(f.Cells)=0 then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
exit sub
end if
Next
msgbox "aucune des feuilles n'est vide d'informations
end sub
A+Bonjour à toutes et tous,
Juste un petit problème dont j'ai du mal à me sortir et auquel je
n'ai pas trouvé réponse dans les archives du forum.
Dans un fichier, j'ai 9 feuilles appeler Feuil1 - Feuil2 - Feuil3
jusqu'à Feuil9 + une feuille de calcul faisant référence à ces 9
feuilles.
9 fois au cours de l'année, je dois copier dans ce fichier des
données en provenance d'un autre fichier.
Mon idée est de :
- Tester s'il y a déjà des informations sur la Feuil1. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil2.
- Tester s'il y a déjà des informations sur la Feuil2. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil3.
- Ainsi de suite jusqu'Ã la feuille 9.
Je ne sais pas comment le traduire en VBA.
Merci de vos idées.
Jacques
bonjour,
'tu déclares ton tableau de Feuil1 à Feuil9 sur le modéle suivant puis tu
parcours les éléments du tableau pour trouver la feuille qui est sans infos (
entendons-nous, ici on teste que ce qu'il y a dans les cellules. S'il y a un
objet ( graphique ou autre), ce n'est pas testé). Si il y a une feuille vide
d'info , on copie ce qui vient du fichier ( je suppose que tu as pris la
peine de faire l'opération de chargement en mémoire des données à copier pour
pouvoir le réalilser dans la boucle for si une feuille est vide). Si aucune
des feuilles n'est vide, alors tu auras le message te l'indiquant.
sub copiefeuillesnonvides
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
if Application.WorksheetFunction.CountA(f.Cells)=0 then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
exit sub
end if
Next
msgbox "aucune des feuilles n'est vide d'informations
end sub
A+Bonjour à toutes et tous,
Juste un petit problème dont j'ai du mal à me sortir et auquel je
n'ai pas trouvé réponse dans les archives du forum.
Dans un fichier, j'ai 9 feuilles appeler Feuil1 - Feuil2 - Feuil3
jusqu'à Feuil9 + une feuille de calcul faisant référence à ces 9
feuilles.
9 fois au cours de l'année, je dois copier dans ce fichier des
données en provenance d'un autre fichier.
Mon idée est de :
- Tester s'il y a déjà des informations sur la Feuil1. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil2.
- Tester s'il y a déjà des informations sur la Feuil2. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil3.
- Ainsi de suite jusqu'Ã la feuille 9.
Je ne sais pas comment le traduire en VBA.
Merci de vos idées.
Jacques
bonjour,
'tu déclares ton tableau de Feuil1 à Feuil9 sur le modéle suivant puis tu
parcours les éléments du tableau pour trouver la feuille qui est sans infos (
entendons-nous, ici on teste que ce qu'il y a dans les cellules. S'il y a un
objet ( graphique ou autre), ce n'est pas testé). Si il y a une feuille vide
d'info , on copie ce qui vient du fichier ( je suppose que tu as pris la
peine de faire l'opération de chargement en mémoire des données à copier pour
pouvoir le réalilser dans la boucle for si une feuille est vide). Si aucune
des feuilles n'est vide, alors tu auras le message te l'indiquant.
sub copiefeuillesnonvides
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
if Application.WorksheetFunction.CountA(f.Cells)=0 then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
exit sub
end if
Next
msgbox "aucune des feuilles n'est vide d'informations
end sub
A+
Bonjour à toutes et tous,
Juste un petit problème dont j'ai du mal à me sortir et auquel je
n'ai pas trouvé réponse dans les archives du forum.
Dans un fichier, j'ai 9 feuilles appeler Feuil1 - Feuil2 - Feuil3
jusqu'à Feuil9 + une feuille de calcul faisant référence à ces 9
feuilles.
9 fois au cours de l'année, je dois copier dans ce fichier des
données en provenance d'un autre fichier.
Mon idée est de :
- Tester s'il y a déjà des informations sur la Feuil1. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil2.
- Tester s'il y a déjà des informations sur la Feuil2. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil3.
- Ainsi de suite jusqu'Ã la feuille 9.
Je ne sais pas comment le traduire en VBA.
Merci de vos idées.
Jacques
bonjour,
'tu déclares ton tableau de Feuil1 à Feuil9 sur le modéle suivant puis tu
parcours les éléments du tableau pour trouver la feuille qui est sans infos (
entendons-nous, ici on teste que ce qu'il y a dans les cellules. S'il y a un
objet ( graphique ou autre), ce n'est pas testé). Si il y a une feuille vide
d'info , on copie ce qui vient du fichier ( je suppose que tu as pris la
peine de faire l'opération de chargement en mémoire des données à copier pour
pouvoir le réalilser dans la boucle for si une feuille est vide). Si aucune
des feuilles n'est vide, alors tu auras le message te l'indiquant.
sub copiefeuillesnonvides
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
if Application.WorksheetFunction.CountA(f.Cells)=0 then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
exit sub
end if
Next
msgbox "aucune des feuilles n'est vide d'informations
end sub
A+Bonjour à toutes et tous,
Juste un petit problème dont j'ai du mal à me sortir et auquel je
n'ai pas trouvé réponse dans les archives du forum.
Dans un fichier, j'ai 9 feuilles appeler Feuil1 - Feuil2 - Feuil3
jusqu'à Feuil9 + une feuille de calcul faisant référence à ces 9
feuilles.
9 fois au cours de l'année, je dois copier dans ce fichier des
données en provenance d'un autre fichier.
Mon idée est de :
- Tester s'il y a déjà des informations sur la Feuil1. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil2.
- Tester s'il y a déjà des informations sur la Feuil2. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil3.
- Ainsi de suite jusqu'Ã la feuille 9.
Je ne sais pas comment le traduire en VBA.
Merci de vos idées.
Jacques
re,
j'ai un peu allégé ton code. Et d'autre part, il faut bien que tu identifies
la feuille sur laquelle les données doivent être copiées ( c'est le but de
f.Range("A1").PasteSpecial xlPasteValues ). Ai rajouté au passage un
Application.CutCopyMode = False pour liberer les données du prese-papiers.
Peux te garantir que ca fonctionne puisque testé avec succès.
Application.ScreenUpdating = False
Cells.Copy
Workbooks.Open Filename_
"C:jacqueshFORMATION INFOCHANTIERSTestCopie2.xls"
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
If Application.WorksheetFunction.CountA(f.Cells) = 0 Then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
f.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Exit Sub
End If
Next
MsgBox "aucune des feuilles n'est vide d'informations"
Application.CutCopyMode = False
A+Bonjour et merci pour ta réponse.
J'ai fait un essai rapide : je viens de mettre le code que tu m'as donné avec
celui obtenu avec l'enregistreur de macro.
J'ai obtenu ceci :
Sub Macro1()
'
Application.ScreenUpdating = False
Cells.Select
Selection.Copy
Workbooks.Open FileName:= _
"C:jacqueshFORMATION INFOCHANTIERSTestCopie2.xls"
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
If Application.WorksheetFunction.CountA(f.Cells) = 0 Then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlValues
Exit Sub
End If
Next
MsgBox "aucune des feuilles n'est vide d'informations"
End Sub
Je pense qu'il y a un problème avec la fonction "coller" car la Macro bloque sur
la ligne "ActiveSheet.Paste".
Peux-tu m'indiquer quelques pistes.
Merci d'avance.
Jacquesbonjour,
'tu déclares ton tableau de Feuil1 à Feuil9 sur le modéle suivant puis tu
parcours les éléments du tableau pour trouver la feuille qui est sans infos (
entendons-nous, ici on teste que ce qu'il y a dans les cellules. S'il y a un
objet ( graphique ou autre), ce n'est pas testé). Si il y a une feuille vide
d'info , on copie ce qui vient du fichier ( je suppose que tu as pris la
peine de faire l'opération de chargement en mémoire des données à copier pour
pouvoir le réalilser dans la boucle for si une feuille est vide). Si aucune
des feuilles n'est vide, alors tu auras le message te l'indiquant.
sub copiefeuillesnonvides
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
if Application.WorksheetFunction.CountA(f.Cells)=0 then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
exit sub
end if
Next
msgbox "aucune des feuilles n'est vide d'informations
end sub
A+Bonjour à toutes et tous,
Juste un petit problème dont j'ai du mal à me sortir et auquel je
n'ai pas trouvé réponse dans les archives du forum.
Dans un fichier, j'ai 9 feuilles appeler Feuil1 - Feuil2 - Feuil3
jusqu'à Feuil9 + une feuille de calcul faisant référence à ces 9
feuilles.
9 fois au cours de l'année, je dois copier dans ce fichier des
données en provenance d'un autre fichier.
Mon idée est de :
- Tester s'il y a déjà des informations sur la Feuil1. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil2.
- Tester s'il y a déjà des informations sur la Feuil2. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil3.
- Ainsi de suite jusqu'Ã la feuille 9.
Je ne sais pas comment le traduire en VBA.
Merci de vos idées.
Jacques
re,
j'ai un peu allégé ton code. Et d'autre part, il faut bien que tu identifies
la feuille sur laquelle les données doivent être copiées ( c'est le but de
f.Range("A1").PasteSpecial xlPasteValues ). Ai rajouté au passage un
Application.CutCopyMode = False pour liberer les données du prese-papiers.
Peux te garantir que ca fonctionne puisque testé avec succès.
Application.ScreenUpdating = False
Cells.Copy
Workbooks.Open Filename_
"C:jacqueshFORMATION INFOCHANTIERSTestCopie2.xls"
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
If Application.WorksheetFunction.CountA(f.Cells) = 0 Then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
f.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Exit Sub
End If
Next
MsgBox "aucune des feuilles n'est vide d'informations"
Application.CutCopyMode = False
A+
Bonjour et merci pour ta réponse.
J'ai fait un essai rapide : je viens de mettre le code que tu m'as donné avec
celui obtenu avec l'enregistreur de macro.
J'ai obtenu ceci :
Sub Macro1()
'
Application.ScreenUpdating = False
Cells.Select
Selection.Copy
Workbooks.Open FileName:= _
"C:jacqueshFORMATION INFOCHANTIERSTestCopie2.xls"
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
If Application.WorksheetFunction.CountA(f.Cells) = 0 Then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlValues
Exit Sub
End If
Next
MsgBox "aucune des feuilles n'est vide d'informations"
End Sub
Je pense qu'il y a un problème avec la fonction "coller" car la Macro bloque sur
la ligne "ActiveSheet.Paste".
Peux-tu m'indiquer quelques pistes.
Merci d'avance.
Jacques
bonjour,
'tu déclares ton tableau de Feuil1 à Feuil9 sur le modéle suivant puis tu
parcours les éléments du tableau pour trouver la feuille qui est sans infos (
entendons-nous, ici on teste que ce qu'il y a dans les cellules. S'il y a un
objet ( graphique ou autre), ce n'est pas testé). Si il y a une feuille vide
d'info , on copie ce qui vient du fichier ( je suppose que tu as pris la
peine de faire l'opération de chargement en mémoire des données à copier pour
pouvoir le réalilser dans la boucle for si une feuille est vide). Si aucune
des feuilles n'est vide, alors tu auras le message te l'indiquant.
sub copiefeuillesnonvides
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
if Application.WorksheetFunction.CountA(f.Cells)=0 then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
exit sub
end if
Next
msgbox "aucune des feuilles n'est vide d'informations
end sub
A+
Bonjour à toutes et tous,
Juste un petit problème dont j'ai du mal à me sortir et auquel je
n'ai pas trouvé réponse dans les archives du forum.
Dans un fichier, j'ai 9 feuilles appeler Feuil1 - Feuil2 - Feuil3
jusqu'à Feuil9 + une feuille de calcul faisant référence à ces 9
feuilles.
9 fois au cours de l'année, je dois copier dans ce fichier des
données en provenance d'un autre fichier.
Mon idée est de :
- Tester s'il y a déjà des informations sur la Feuil1. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil2.
- Tester s'il y a déjà des informations sur la Feuil2. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil3.
- Ainsi de suite jusqu'Ã la feuille 9.
Je ne sais pas comment le traduire en VBA.
Merci de vos idées.
Jacques
re,
j'ai un peu allégé ton code. Et d'autre part, il faut bien que tu identifies
la feuille sur laquelle les données doivent être copiées ( c'est le but de
f.Range("A1").PasteSpecial xlPasteValues ). Ai rajouté au passage un
Application.CutCopyMode = False pour liberer les données du prese-papiers.
Peux te garantir que ca fonctionne puisque testé avec succès.
Application.ScreenUpdating = False
Cells.Copy
Workbooks.Open Filename_
"C:jacqueshFORMATION INFOCHANTIERSTestCopie2.xls"
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
If Application.WorksheetFunction.CountA(f.Cells) = 0 Then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
f.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Exit Sub
End If
Next
MsgBox "aucune des feuilles n'est vide d'informations"
Application.CutCopyMode = False
A+Bonjour et merci pour ta réponse.
J'ai fait un essai rapide : je viens de mettre le code que tu m'as donné avec
celui obtenu avec l'enregistreur de macro.
J'ai obtenu ceci :
Sub Macro1()
'
Application.ScreenUpdating = False
Cells.Select
Selection.Copy
Workbooks.Open FileName:= _
"C:jacqueshFORMATION INFOCHANTIERSTestCopie2.xls"
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
If Application.WorksheetFunction.CountA(f.Cells) = 0 Then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlValues
Exit Sub
End If
Next
MsgBox "aucune des feuilles n'est vide d'informations"
End Sub
Je pense qu'il y a un problème avec la fonction "coller" car la Macro bloque sur
la ligne "ActiveSheet.Paste".
Peux-tu m'indiquer quelques pistes.
Merci d'avance.
Jacquesbonjour,
'tu déclares ton tableau de Feuil1 à Feuil9 sur le modéle suivant puis tu
parcours les éléments du tableau pour trouver la feuille qui est sans infos (
entendons-nous, ici on teste que ce qu'il y a dans les cellules. S'il y a un
objet ( graphique ou autre), ce n'est pas testé). Si il y a une feuille vide
d'info , on copie ce qui vient du fichier ( je suppose que tu as pris la
peine de faire l'opération de chargement en mémoire des données à copier pour
pouvoir le réalilser dans la boucle for si une feuille est vide). Si aucune
des feuilles n'est vide, alors tu auras le message te l'indiquant.
sub copiefeuillesnonvides
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
if Application.WorksheetFunction.CountA(f.Cells)=0 then
'ici tu copies tes données venant d'un autre fichier sur la feuille vide
'dont le nom courant est f.name
exit sub
end if
Next
msgbox "aucune des feuilles n'est vide d'informations
end sub
A+Bonjour à toutes et tous,
Juste un petit problème dont j'ai du mal à me sortir et auquel je
n'ai pas trouvé réponse dans les archives du forum.
Dans un fichier, j'ai 9 feuilles appeler Feuil1 - Feuil2 - Feuil3
jusqu'à Feuil9 + une feuille de calcul faisant référence à ces 9
feuilles.
9 fois au cours de l'année, je dois copier dans ce fichier des
données en provenance d'un autre fichier.
Mon idée est de :
- Tester s'il y a déjà des informations sur la Feuil1. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil2.
- Tester s'il y a déjà des informations sur la Feuil2. Si non,
je copie les données de l'autre fichier. Si oui, je passe à la Feuil3.
- Ainsi de suite jusqu'Ã la feuille 9.
Je ne sais pas comment le traduire en VBA.
Merci de vos idées.
Jacques