OVH Cloud OVH Cloud

MacrCopier/Coller dans une seconde feuille si celulle vide

7 réponses
Avatar
Steph38
Bonsoir à tous,

Je découvre la partie Macro d'Excel et pour tout vous dire, j'en suis au balbutiement. Je dois mettre en place des outils pour les remises de chèque de notre C.E.

J'ai un 1er onglet " Détail des chèques " avec les informations nécessaire à la remise en banque dans les colonnes B C D E et la condition en colonne F

Mon 2eme onglet est mon Bordereau de remise de chèque.

si la cellule F de mon 1er onglet est vide, alors il recopie les données des colonnes BCDE dans mon bordereau de remise en banque.

La validation de la remise doit :
- dupliquer l'onglet " Bordereau de remise" pour archivage
- indiquer le n° de la remise dans les cellules F de l'onglet " Détail des chèques "
- R.A.S. de l'onglet " Bordereau de remise ".

J'espère être assez clair dans ma demande.
En vous remerciant par avance de l'aide que vous pourrez m'apporter.

7 réponses

Avatar
isabelle
bonjour Steph,
si tu peut publier ton classeur sur Cjoint.com et retourner ici l'adresse que
tu obtiendras
ps/ avec seulement les informations pertinentes au problème que tu soulèves
cela sera utile à écrire le code
isabelle
Le 2017-01-11 à 19:03, Steph38 a écrit :
Bonsoir à tous,
Je découvre la partie Macro d'Excel et pour tout vous dire, j'en suis au
balbutiement. Je dois mettre en place des outils pour les remises de chèque de
notre C.E.
J'ai un 1er onglet " Détail des chèques " avec les informations nécessaire à la
remise en banque dans les colonnes B C D E et la condition en colonne F
Mon 2eme onglet est mon Bordereau de remise de chèque.
si la cellule F de mon 1er onglet est vide, alors il recopie les données des
colonnes BCDE dans mon bordereau de remise en banque.
La validation de la remise doit :
- dupliquer l'onglet " Bordereau de remise" pour archivage
- indiquer le n° de la remise dans les cellules F de l'onglet " Détail des
chèques "
- R.A.S. de l'onglet " Bordereau de remise ".
J'espère être assez clair dans ma demande.
En vous remerciant par avance de l'aide que vous pourrez m'apporter.
Avatar
steph38
Le jeudi 12 Janvier 2017 à 01:03 par Steph38 :
Bonsoir à tous,
Je découvre la partie Macro d'Excel et pour tout vous dire, j'en suis au
balbutiement. Je dois mettre en place des outils pour les remises de
chèque de notre C.E.
J'ai un 1er onglet " Détail des chèques " avec les
informations nécessaire à la remise en banque dans les colonnes B
C D E et la condition en colonne F
Mon 2eme onglet est mon Bordereau de remise de chèque.
si la cellule F de mon 1er onglet est vide, alors il recopie les données
des colonnes BCDE dans mon bordereau de remise en banque.
La validation de la remise doit :
- dupliquer l'onglet " Bordereau de remise" pour archivage
- indiquer le n° de la remise dans les cellules F de l'onglet "
Détail des chèques "
- R.A.S. de l'onglet " Bordereau de remise ".
J'espère être assez clair dans ma demande.
En vous remerciant par avance de l'aide que vous pourrez m'apporter.
Bonjour,
Un grand merci pour la réactivité.
Ci joint le fichier test que j'ai élaboré.
Je souhaite partir de cette base et le faire évoluer.
ci-dessous le lien de mon fichier :
http://www.cjoint.com/c/GAmfe4l5NH7
Bonne journée
Avatar
steph38
Le jeudi 12 Janvier 2017 à 01:03 par Steph38 :
Bonsoir à tous,
Je découvre la partie Macro d'Excel et pour tout vous dire, j'en suis au
balbutiement. Je dois mettre en place des outils pour les remises de
chèque de notre C.E.
J'ai un 1er onglet " Détail des chèques " avec les
informations nécessaire à la remise en banque dans les colonnes B
C D E et la condition en colonne F
Mon 2eme onglet est mon Bordereau de remise de chèque.
si la cellule F de mon 1er onglet est vide, alors il recopie les données
des colonnes BCDE dans mon bordereau de remise en banque.
La validation de la remise doit :
- dupliquer l'onglet " Bordereau de remise" pour archivage
- indiquer le n° de la remise dans les cellules F de l'onglet "
Détail des chèques "
- R.A.S. de l'onglet " Bordereau de remise ".
J'espère être assez clair dans ma demande.
En vous remerciant par avance de l'aide que vous pourrez m'apporter.
J'ai créée un fichier zip car il semblerait que l'extension .xlsm ne fonctionnement pas avec c.joint.com
ci-dessous mon nouveau lien :
http://www.cjoint.com/c/GAmfOKIKTD7
En vous remerciant par avance.
Avatar
isabelle
bonjour Steph,
voici la macro pour le transfert de données et sauvegarde du bordereau
Sub test()
Dim LastRow As Long, i As Long, lign As Integer
Set bord = Sheets("Bordereau de remise")
Set detail = Sheets("Détail des chèques")
LastRow = detail.Cells(Rows.Count, 2).End(xlUp).Row - 1
lign = 11
For i = 2 To LastRow
If detail.Cells(i, 6).Value = "" Then
bord.Cells(lign, 2).Value = detail.Cells(i, 2).Value
bord.Cells(lign, 3).Value = detail.Cells(i, 3).Value
bord.Cells(lign, 4).Value = detail.Cells(i, 4).Value
bord.Cells(lign, 5).Value = detail.Cells(i, 5).Value
detail.Cells(i, 6).Value = bord.Cells(7, 4).Value
lign = lign + 1
End If
Next
bord.Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = bord.[D7].Value
bord.Range("B11:E40").ClearContents
End Sub
isabelle
Le 2017-01-12 à 00:45, steph38 a écrit :
ci-dessous mon nouveau lien :
http://www.cjoint.com/c/GAmfOKIKTD7
En vous remerciant par avance.
Avatar
isabelle
il faudrait ajouter une commande en fin de macro
pour incrémenter le N° de remise:
bord.[D7] = bord.[D7]+1
isabelle
Le 2017-01-12 à 10:13, isabelle a écrit :
bonjour Steph,
voici la macro pour le transfert de données et sauvegarde du bordereau
Sub test()
Dim LastRow As Long, i As Long, lign As Integer
Set bord = Sheets("Bordereau de remise")
Set detail = Sheets("Détail des chèques")
LastRow = detail.Cells(Rows.Count, 2).End(xlUp).Row - 1
lign = 11
For i = 2 To LastRow
If detail.Cells(i, 6).Value = "" Then
bord.Cells(lign, 2).Value = detail.Cells(i, 2).Value
bord.Cells(lign, 3).Value = detail.Cells(i, 3).Value
bord.Cells(lign, 4).Value = detail.Cells(i, 4).Value
bord.Cells(lign, 5).Value = detail.Cells(i, 5).Value
detail.Cells(i, 6).Value = bord.Cells(7, 4).Value
lign = lign + 1
End If
Next
bord.Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = bord.[D7].Value
bord.Range("B11:E40").ClearContents
End Sub
isabelle
Le 2017-01-12 à 00:45, steph38 a écrit :
ci-dessous mon nouveau lien :
http://www.cjoint.com/c/GAmfOKIKTD7
En vous remerciant par avance.
Avatar
steph38
Le jeudi 12 Janvier 2017 à 01:03 par Steph38 :
Bonsoir à tous,
Je découvre la partie Macro d'Excel et pour tout vous dire, j'en suis au
balbutiement. Je dois mettre en place des outils pour les remises de
chèque de notre C.E.
J'ai un 1er onglet " Détail des chèques " avec les
informations nécessaire à la remise en banque dans les colonnes B
C D E et la condition en colonne F
Mon 2eme onglet est mon Bordereau de remise de chèque.
si la cellule F de mon 1er onglet est vide, alors il recopie les données
des colonnes BCDE dans mon bordereau de remise en banque.
La validation de la remise doit :
- dupliquer l'onglet " Bordereau de remise" pour archivage
- indiquer le n° de la remise dans les cellules F de l'onglet "
Détail des chèques "
- R.A.S. de l'onglet " Bordereau de remise ".
J'espère être assez clair dans ma demande.
En vous remerciant par avance de l'aide que vous pourrez m'apporter.
Bonsoir Isabelle,
Un grand merci pour le temps passé sur ma problématique.
J'ai fait des tests et j'ai seulement un soucis, si le nombre de chèques à remettre en banque est supérieur à 30.
Lorsque je lance la macro, il recopie les lignes en faisant abstraction du total et fais un RAS des ligne se trouvant dans le corps de ma remise.
je vais regarder de mon côté, mais si tu as une idée, je suis preneur.
Avatar
isabelle
pour trouver le nombre de ligne à traiter,
tu pourrais utiliser cette formule sur la feuille "Détail des chèques"
=NB.SI(INDIRECT("F2:F"&EQUIV("Total";A:A;0)-1);"")
isabelle
Le 2017-01-12 à 11:21, steph38 a écrit :
Bonsoir Isabelle,
Un grand merci pour le temps passé sur ma problématique.
J'ai fait des tests et j'ai seulement un soucis, si le nombre de chèques à
remettre en banque est supérieur à 30.
Lorsque je lance la macro, il recopie les lignes en faisant abstraction du total
et fais un RAS des ligne se trouvant dans le corps de ma remise.
je vais regarder de mon côté, mais si tu as une idée, je suis preneur.