Bonjour,
Dans une macro, je récupère des valeurs de cellules d'une feuille d'un
classeur pour les copier dans une feuille "récap" d'un autre classeur.
Si une cellule n'est pas renseignée(ex Remise ou Montant Avoir), la
cellule de destination reste vide et je pense que vous l'aurez compris
avec l'extrait ci-dessous, il y a un seul enregistrement complet par
ligne.
Mais lorsque cette même cellule est renseignée, la copie s'effectue sur la
première cellule vide correspondante trouvée et ne correspond pas avec la
bonne ligne.
Que faut'il modifier pour "forcer" l'écriture sur la bonne ligne ?
Merci
NewsMic
Sheets("récap").Range("A6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B11") 'N° client
Sheets("récap").Range("C6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H4") 'N° facture
Sheets("récap").Range("D6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F43") 'Montant réglé
Sheets("récap").Range("E6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H39") 'Montant facturé
Sheets("récap").Range("F6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F10") 'Nom client
Sheets("récap").Range("G6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H43") 'Mode de règlement
Sheets("récap").Range("I6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H36") 'Total articles
Sheets("récap").Range("J6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H37") 'Frais
Sheets("récap").Range("K6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H38") 'Remise
Sheets("récap").Range("N6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B13") 'Support
Sheets("récap").Range("O6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B14") 'Action
Sheets("récap").Range("P6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F46") 'Montant Avoir
Sheets("récap").Range("Q6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H47") 'N° facture Avoir
Bonjour,
Dans une macro, je récupère des valeurs de cellules d'une feuille d'un
classeur pour les copier dans une feuille "récap" d'un autre classeur.
Si une cellule n'est pas renseignée(ex Remise ou Montant Avoir), la
cellule de destination reste vide et je pense que vous l'aurez compris
avec l'extrait ci-dessous, il y a un seul enregistrement complet par
ligne.
Mais lorsque cette même cellule est renseignée, la copie s'effectue sur la
première cellule vide correspondante trouvée et ne correspond pas avec la
bonne ligne.
Que faut'il modifier pour "forcer" l'écriture sur la bonne ligne ?
Merci
NewsMic
Sheets("récap").Range("A6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B11") 'N° client
Sheets("récap").Range("C6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H4") 'N° facture
Sheets("récap").Range("D6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F43") 'Montant réglé
Sheets("récap").Range("E6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H39") 'Montant facturé
Sheets("récap").Range("F6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F10") 'Nom client
Sheets("récap").Range("G6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H43") 'Mode de règlement
Sheets("récap").Range("I6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H36") 'Total articles
Sheets("récap").Range("J6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H37") 'Frais
Sheets("récap").Range("K6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H38") 'Remise
Sheets("récap").Range("N6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B13") 'Support
Sheets("récap").Range("O6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B14") 'Action
Sheets("récap").Range("P6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F46") 'Montant Avoir
Sheets("récap").Range("Q6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H47") 'N° facture Avoir
Bonjour,
Dans une macro, je récupère des valeurs de cellules d'une feuille d'un
classeur pour les copier dans une feuille "récap" d'un autre classeur.
Si une cellule n'est pas renseignée(ex Remise ou Montant Avoir), la
cellule de destination reste vide et je pense que vous l'aurez compris
avec l'extrait ci-dessous, il y a un seul enregistrement complet par
ligne.
Mais lorsque cette même cellule est renseignée, la copie s'effectue sur la
première cellule vide correspondante trouvée et ne correspond pas avec la
bonne ligne.
Que faut'il modifier pour "forcer" l'écriture sur la bonne ligne ?
Merci
NewsMic
Sheets("récap").Range("A6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B11") 'N° client
Sheets("récap").Range("C6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H4") 'N° facture
Sheets("récap").Range("D6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F43") 'Montant réglé
Sheets("récap").Range("E6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H39") 'Montant facturé
Sheets("récap").Range("F6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F10") 'Nom client
Sheets("récap").Range("G6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H43") 'Mode de règlement
Sheets("récap").Range("I6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H36") 'Total articles
Sheets("récap").Range("J6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H37") 'Frais
Sheets("récap").Range("K6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H38") 'Remise
Sheets("récap").Range("N6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B13") 'Support
Sheets("récap").Range("O6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B14") 'Action
Sheets("récap").Range("P6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F46") 'Montant Avoir
Sheets("récap").Range("Q6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H47") 'N° facture Avoir
Bonsoir,
Il faudrait n'utiliser qu'une fois range("toto").End(xlUp) pour renseigner
une variable, soit sur la colonne qui contiens à coup sur le plus grand
nombre de ligne, soit en testant toutes les colonnes concernées et en
détectant la valeur max.
Ainsi :
maXlig=range("toto").End(xlUp).row
ou bien
maXlig = application.worksheetfunction.max(Sheets("récap") _
.Range("A6553").End(xlUp).row, Sheets("récap").Range _
("B6553").End(xlUp).,...)
Ensuite la syntaxe serait du type :
Sheets("récap").Range("A" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("B11") 'N° client
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"NewsMic" a écrit dans le message de
news:487ce3c0$0$925$Bonjour,
Dans une macro, je récupère des valeurs de cellules d'une feuille d'un
classeur pour les copier dans une feuille "récap" d'un autre classeur.
Si une cellule n'est pas renseignée(ex Remise ou Montant Avoir), la
cellule de destination reste vide et je pense que vous l'aurez compris
avec l'extrait ci-dessous, il y a un seul enregistrement complet par
ligne.
Mais lorsque cette même cellule est renseignée, la copie s'effectue sur
la première cellule vide correspondante trouvée et ne correspond pas avec
la bonne ligne.
Que faut'il modifier pour "forcer" l'écriture sur la bonne ligne ?
Merci
NewsMic
Sheets("récap").Range("A6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B11") 'N° client
Sheets("récap").Range("C6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H4") 'N° facture
Sheets("récap").Range("D6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F43") 'Montant réglé
Sheets("récap").Range("E6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H39") 'Montant facturé
Sheets("récap").Range("F6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F10") 'Nom client
Sheets("récap").Range("G6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H43") 'Mode de règlement
Sheets("récap").Range("I6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H36") 'Total articles
Sheets("récap").Range("J6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H37") 'Frais
Sheets("récap").Range("K6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H38") 'Remise
Sheets("récap").Range("N6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B13") 'Support
Sheets("récap").Range("O6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B14") 'Action
Sheets("récap").Range("P6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F46") 'Montant Avoir
Sheets("récap").Range("Q6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H47") 'N° facture Avoir
Bonsoir,
Il faudrait n'utiliser qu'une fois range("toto").End(xlUp) pour renseigner
une variable, soit sur la colonne qui contiens à coup sur le plus grand
nombre de ligne, soit en testant toutes les colonnes concernées et en
détectant la valeur max.
Ainsi :
maXlig=range("toto").End(xlUp).row
ou bien
maXlig = application.worksheetfunction.max(Sheets("récap") _
.Range("A6553").End(xlUp).row, Sheets("récap").Range _
("B6553").End(xlUp).,...)
Ensuite la syntaxe serait du type :
Sheets("récap").Range("A" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("B11") 'N° client
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"NewsMic" <britannicus60@wanadoo.fr> a écrit dans le message de
news:487ce3c0$0$925$ba4acef3@news.orange.fr...
Bonjour,
Dans une macro, je récupère des valeurs de cellules d'une feuille d'un
classeur pour les copier dans une feuille "récap" d'un autre classeur.
Si une cellule n'est pas renseignée(ex Remise ou Montant Avoir), la
cellule de destination reste vide et je pense que vous l'aurez compris
avec l'extrait ci-dessous, il y a un seul enregistrement complet par
ligne.
Mais lorsque cette même cellule est renseignée, la copie s'effectue sur
la première cellule vide correspondante trouvée et ne correspond pas avec
la bonne ligne.
Que faut'il modifier pour "forcer" l'écriture sur la bonne ligne ?
Merci
NewsMic
Sheets("récap").Range("A6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B11") 'N° client
Sheets("récap").Range("C6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H4") 'N° facture
Sheets("récap").Range("D6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F43") 'Montant réglé
Sheets("récap").Range("E6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H39") 'Montant facturé
Sheets("récap").Range("F6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F10") 'Nom client
Sheets("récap").Range("G6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H43") 'Mode de règlement
Sheets("récap").Range("I6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H36") 'Total articles
Sheets("récap").Range("J6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H37") 'Frais
Sheets("récap").Range("K6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H38") 'Remise
Sheets("récap").Range("N6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B13") 'Support
Sheets("récap").Range("O6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B14") 'Action
Sheets("récap").Range("P6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F46") 'Montant Avoir
Sheets("récap").Range("Q6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H47") 'N° facture Avoir
Bonsoir,
Il faudrait n'utiliser qu'une fois range("toto").End(xlUp) pour renseigner
une variable, soit sur la colonne qui contiens à coup sur le plus grand
nombre de ligne, soit en testant toutes les colonnes concernées et en
détectant la valeur max.
Ainsi :
maXlig=range("toto").End(xlUp).row
ou bien
maXlig = application.worksheetfunction.max(Sheets("récap") _
.Range("A6553").End(xlUp).row, Sheets("récap").Range _
("B6553").End(xlUp).,...)
Ensuite la syntaxe serait du type :
Sheets("récap").Range("A" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("B11") 'N° client
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"NewsMic" a écrit dans le message de
news:487ce3c0$0$925$Bonjour,
Dans une macro, je récupère des valeurs de cellules d'une feuille d'un
classeur pour les copier dans une feuille "récap" d'un autre classeur.
Si une cellule n'est pas renseignée(ex Remise ou Montant Avoir), la
cellule de destination reste vide et je pense que vous l'aurez compris
avec l'extrait ci-dessous, il y a un seul enregistrement complet par
ligne.
Mais lorsque cette même cellule est renseignée, la copie s'effectue sur
la première cellule vide correspondante trouvée et ne correspond pas avec
la bonne ligne.
Que faut'il modifier pour "forcer" l'écriture sur la bonne ligne ?
Merci
NewsMic
Sheets("récap").Range("A6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B11") 'N° client
Sheets("récap").Range("C6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H4") 'N° facture
Sheets("récap").Range("D6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F43") 'Montant réglé
Sheets("récap").Range("E6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H39") 'Montant facturé
Sheets("récap").Range("F6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F10") 'Nom client
Sheets("récap").Range("G6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H43") 'Mode de règlement
Sheets("récap").Range("I6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H36") 'Total articles
Sheets("récap").Range("J6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H37") 'Frais
Sheets("récap").Range("K6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H38") 'Remise
Sheets("récap").Range("N6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B13") 'Support
Sheets("récap").Range("O6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B14") 'Action
Sheets("récap").Range("P6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F46") 'Montant Avoir
Sheets("récap").Range("Q6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H47") 'N° facture Avoir
Bonsoir,
Il faudrait n'utiliser qu'une fois range("toto").End(xlUp) pour renseigner
une variable, soit sur la colonne qui contiens à coup sur le plus grand
nombre de ligne, soit en testant toutes les colonnes concernées et en
détectant la valeur max.
Ainsi :
maXlig=range("toto").End(xlUp).row
ou bien
maXlig = application.worksheetfunction.max(Sheets("récap") _
.Range("A6553").End(xlUp).row, Sheets("récap").Range _
("B6553").End(xlUp).,...)
Ensuite la syntaxe serait du type :
Sheets("récap").Range("A" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("B11") 'N° client
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"NewsMic" a écrit dans le message de
news:487ce3c0$0$925$Bonjour,
Dans une macro, je récupère des valeurs de cellules d'une feuille d'un
classeur pour les copier dans une feuille "récap" d'un autre classeur.
Si une cellule n'est pas renseignée(ex Remise ou Montant Avoir), la
cellule de destination reste vide et je pense que vous l'aurez compris
avec l'extrait ci-dessous, il y a un seul enregistrement complet par
ligne.
Mais lorsque cette même cellule est renseignée, la copie s'effectue sur
la première cellule vide correspondante trouvée et ne correspond pas avec
la bonne ligne.
Que faut'il modifier pour "forcer" l'écriture sur la bonne ligne ?
Merci
NewsMic
Sheets("récap").Range("A6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B11") 'N° client
Sheets("récap").Range("C6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H4") 'N° facture
Sheets("récap").Range("D6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F43") 'Montant réglé
Sheets("récap").Range("E6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H39") 'Montant facturé
Sheets("récap").Range("F6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F10") 'Nom client
Sheets("récap").Range("G6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H43") 'Mode de règlement
Sheets("récap").Range("I6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H36") 'Total articles
Sheets("récap").Range("J6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H37") 'Frais
Sheets("récap").Range("K6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H38") 'Remise
Sheets("récap").Range("N6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B13") 'Support
Sheets("récap").Range("O6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B14") 'Action
Sheets("récap").Range("P6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F46") 'Montant Avoir
Sheets("récap").Range("Q6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H47") 'N° facture Avoir
Bonsoir,
Il faudrait n'utiliser qu'une fois range("toto").End(xlUp) pour renseigner
une variable, soit sur la colonne qui contiens à coup sur le plus grand
nombre de ligne, soit en testant toutes les colonnes concernées et en
détectant la valeur max.
Ainsi :
maXlig=range("toto").End(xlUp).row
ou bien
maXlig = application.worksheetfunction.max(Sheets("récap") _
.Range("A6553").End(xlUp).row, Sheets("récap").Range _
("B6553").End(xlUp).,...)
Ensuite la syntaxe serait du type :
Sheets("récap").Range("A" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("B11") 'N° client
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"NewsMic" <britannicus60@wanadoo.fr> a écrit dans le message de
news:487ce3c0$0$925$ba4acef3@news.orange.fr...
Bonjour,
Dans une macro, je récupère des valeurs de cellules d'une feuille d'un
classeur pour les copier dans une feuille "récap" d'un autre classeur.
Si une cellule n'est pas renseignée(ex Remise ou Montant Avoir), la
cellule de destination reste vide et je pense que vous l'aurez compris
avec l'extrait ci-dessous, il y a un seul enregistrement complet par
ligne.
Mais lorsque cette même cellule est renseignée, la copie s'effectue sur
la première cellule vide correspondante trouvée et ne correspond pas avec
la bonne ligne.
Que faut'il modifier pour "forcer" l'écriture sur la bonne ligne ?
Merci
NewsMic
Sheets("récap").Range("A6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B11") 'N° client
Sheets("récap").Range("C6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H4") 'N° facture
Sheets("récap").Range("D6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F43") 'Montant réglé
Sheets("récap").Range("E6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H39") 'Montant facturé
Sheets("récap").Range("F6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F10") 'Nom client
Sheets("récap").Range("G6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H43") 'Mode de règlement
Sheets("récap").Range("I6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H36") 'Total articles
Sheets("récap").Range("J6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H37") 'Frais
Sheets("récap").Range("K6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H38") 'Remise
Sheets("récap").Range("N6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B13") 'Support
Sheets("récap").Range("O6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B14") 'Action
Sheets("récap").Range("P6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F46") 'Montant Avoir
Sheets("récap").Range("Q6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H47") 'N° facture Avoir
Bonsoir,
Il faudrait n'utiliser qu'une fois range("toto").End(xlUp) pour renseigner
une variable, soit sur la colonne qui contiens à coup sur le plus grand
nombre de ligne, soit en testant toutes les colonnes concernées et en
détectant la valeur max.
Ainsi :
maXlig=range("toto").End(xlUp).row
ou bien
maXlig = application.worksheetfunction.max(Sheets("récap") _
.Range("A6553").End(xlUp).row, Sheets("récap").Range _
("B6553").End(xlUp).,...)
Ensuite la syntaxe serait du type :
Sheets("récap").Range("A" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("B11") 'N° client
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"NewsMic" a écrit dans le message de
news:487ce3c0$0$925$Bonjour,
Dans une macro, je récupère des valeurs de cellules d'une feuille d'un
classeur pour les copier dans une feuille "récap" d'un autre classeur.
Si une cellule n'est pas renseignée(ex Remise ou Montant Avoir), la
cellule de destination reste vide et je pense que vous l'aurez compris
avec l'extrait ci-dessous, il y a un seul enregistrement complet par
ligne.
Mais lorsque cette même cellule est renseignée, la copie s'effectue sur
la première cellule vide correspondante trouvée et ne correspond pas avec
la bonne ligne.
Que faut'il modifier pour "forcer" l'écriture sur la bonne ligne ?
Merci
NewsMic
Sheets("récap").Range("A6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B11") 'N° client
Sheets("récap").Range("C6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H4") 'N° facture
Sheets("récap").Range("D6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F43") 'Montant réglé
Sheets("récap").Range("E6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H39") 'Montant facturé
Sheets("récap").Range("F6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F10") 'Nom client
Sheets("récap").Range("G6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H43") 'Mode de règlement
Sheets("récap").Range("I6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H36") 'Total articles
Sheets("récap").Range("J6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H37") 'Frais
Sheets("récap").Range("K6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H38") 'Remise
Sheets("récap").Range("N6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B13") 'Support
Sheets("récap").Range("O6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B14") 'Action
Sheets("récap").Range("P6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F46") 'Montant Avoir
Sheets("récap").Range("Q6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H47") 'N° facture Avoir
Bonsoir,
Il faudrait n'utiliser qu'une fois range("toto").End(xlUp) pour renseigner
une variable, soit sur la colonne qui contiens à coup sur le plus grand
nombre de ligne, soit en testant toutes les colonnes concernées et en
détectant la valeur max.
Ainsi :
maXlig=range("toto").End(xlUp).row
ou bien
maXlig = application.worksheetfunction.max(Sheets("récap") _
.Range("A6553").End(xlUp).row, Sheets("récap").Range _
("B6553").End(xlUp).,...)
Ensuite la syntaxe serait du type :
Sheets("récap").Range("A" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("B11") 'N° client
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"NewsMic" a écrit dans le message de
news:487ce3c0$0$925$Bonjour,
Dans une macro, je récupère des valeurs de cellules d'une feuille d'un
classeur pour les copier dans une feuille "récap" d'un autre classeur.
Si une cellule n'est pas renseignée(ex Remise ou Montant Avoir), la
cellule de destination reste vide et je pense que vous l'aurez compris
avec l'extrait ci-dessous, il y a un seul enregistrement complet par
ligne.
Mais lorsque cette même cellule est renseignée, la copie s'effectue sur
la première cellule vide correspondante trouvée et ne correspond pas avec
la bonne ligne.
Que faut'il modifier pour "forcer" l'écriture sur la bonne ligne ?
Merci
NewsMic
Sheets("récap").Range("A6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B11") 'N° client
Sheets("récap").Range("C6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H4") 'N° facture
Sheets("récap").Range("D6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F43") 'Montant réglé
Sheets("récap").Range("E6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H39") 'Montant facturé
Sheets("récap").Range("F6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F10") 'Nom client
Sheets("récap").Range("G6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H43") 'Mode de règlement
Sheets("récap").Range("I6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H36") 'Total articles
Sheets("récap").Range("J6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H37") 'Frais
Sheets("récap").Range("K6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H38") 'Remise
Sheets("récap").Range("N6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B13") 'Support
Sheets("récap").Range("O6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B14") 'Action
Sheets("récap").Range("P6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F46") 'Montant Avoir
Sheets("récap").Range("Q6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H47") 'N° facture Avoir
Bonsoir,
Il faudrait n'utiliser qu'une fois range("toto").End(xlUp) pour renseigner
une variable, soit sur la colonne qui contiens à coup sur le plus grand
nombre de ligne, soit en testant toutes les colonnes concernées et en
détectant la valeur max.
Ainsi :
maXlig=range("toto").End(xlUp).row
ou bien
maXlig = application.worksheetfunction.max(Sheets("récap") _
.Range("A6553").End(xlUp).row, Sheets("récap").Range _
("B6553").End(xlUp).,...)
Ensuite la syntaxe serait du type :
Sheets("récap").Range("A" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("B11") 'N° client
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"NewsMic" <britannicus60@wanadoo.fr> a écrit dans le message de
news:487ce3c0$0$925$ba4acef3@news.orange.fr...
Bonjour,
Dans une macro, je récupère des valeurs de cellules d'une feuille d'un
classeur pour les copier dans une feuille "récap" d'un autre classeur.
Si une cellule n'est pas renseignée(ex Remise ou Montant Avoir), la
cellule de destination reste vide et je pense que vous l'aurez compris
avec l'extrait ci-dessous, il y a un seul enregistrement complet par
ligne.
Mais lorsque cette même cellule est renseignée, la copie s'effectue sur
la première cellule vide correspondante trouvée et ne correspond pas avec
la bonne ligne.
Que faut'il modifier pour "forcer" l'écriture sur la bonne ligne ?
Merci
NewsMic
Sheets("récap").Range("A6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B11") 'N° client
Sheets("récap").Range("C6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H4") 'N° facture
Sheets("récap").Range("D6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F43") 'Montant réglé
Sheets("récap").Range("E6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H39") 'Montant facturé
Sheets("récap").Range("F6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F10") 'Nom client
Sheets("récap").Range("G6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H43") 'Mode de règlement
Sheets("récap").Range("I6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H36") 'Total articles
Sheets("récap").Range("J6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H37") 'Frais
Sheets("récap").Range("K6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H38") 'Remise
Sheets("récap").Range("N6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B13") 'Support
Sheets("récap").Range("O6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B14") 'Action
Sheets("récap").Range("P6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F46") 'Montant Avoir
Sheets("récap").Range("Q6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H47") 'N° facture Avoir
Bonsoir,
Il faudrait n'utiliser qu'une fois range("toto").End(xlUp) pour renseigner
une variable, soit sur la colonne qui contiens à coup sur le plus grand
nombre de ligne, soit en testant toutes les colonnes concernées et en
détectant la valeur max.
Ainsi :
maXlig=range("toto").End(xlUp).row
ou bien
maXlig = application.worksheetfunction.max(Sheets("récap") _
.Range("A6553").End(xlUp).row, Sheets("récap").Range _
("B6553").End(xlUp).,...)
Ensuite la syntaxe serait du type :
Sheets("récap").Range("A" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("B11") 'N° client
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"NewsMic" a écrit dans le message de
news:487ce3c0$0$925$Bonjour,
Dans une macro, je récupère des valeurs de cellules d'une feuille d'un
classeur pour les copier dans une feuille "récap" d'un autre classeur.
Si une cellule n'est pas renseignée(ex Remise ou Montant Avoir), la
cellule de destination reste vide et je pense que vous l'aurez compris
avec l'extrait ci-dessous, il y a un seul enregistrement complet par
ligne.
Mais lorsque cette même cellule est renseignée, la copie s'effectue sur
la première cellule vide correspondante trouvée et ne correspond pas avec
la bonne ligne.
Que faut'il modifier pour "forcer" l'écriture sur la bonne ligne ?
Merci
NewsMic
Sheets("récap").Range("A6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B11") 'N° client
Sheets("récap").Range("C6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H4") 'N° facture
Sheets("récap").Range("D6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F43") 'Montant réglé
Sheets("récap").Range("E6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H39") 'Montant facturé
Sheets("récap").Range("F6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F10") 'Nom client
Sheets("récap").Range("G6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H43") 'Mode de règlement
Sheets("récap").Range("I6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H36") 'Total articles
Sheets("récap").Range("J6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H37") 'Frais
Sheets("récap").Range("K6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H38") 'Remise
Sheets("récap").Range("N6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B13") 'Support
Sheets("récap").Range("O6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B14") 'Action
Sheets("récap").Range("P6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F46") 'Montant Avoir
Sheets("récap").Range("Q6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H47") 'N° facture Avoir
Bonjour,
J'ai un souci. Lors de la première utilisation de la macro modifiée, dans
le fichier de destination, la copie écrase toutes les cellules du 1er
enregistrement au lieu de s'ajouter à la fin
J'ai modifié la ligne en
maXlig = Range("C6553").End(xlUp).Row
(La colonne C étant celle du n° de facture n'étant jamais vide)
Les 2 fichiers étant ouverts, est ce qu'il faut mettre cette ligne à un
endroit précis de la macro pour que la valeur maXlig s'initialise ?
Puis j'ai modifié toutes les lignes exactement comme dans votre réponse :
ex : Sheets("récap").Range("A" & maXlig).End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
NewsMic
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:Bonsoir,
Il faudrait n'utiliser qu'une fois range("toto").End(xlUp) pour
renseigner une variable, soit sur la colonne qui contiens à coup sur le
plus grand nombre de ligne, soit en testant toutes les colonnes
concernées et en détectant la valeur max.
Ainsi :
maXlig=range("toto").End(xlUp).row
ou bien
maXlig = application.worksheetfunction.max(Sheets("récap") _
.Range("A6553").End(xlUp).row, Sheets("récap").Range _
("B6553").End(xlUp).,...)
Ensuite la syntaxe serait du type :
Sheets("récap").Range("A" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("B11") 'N° client
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"NewsMic" a écrit dans le message de
news:487ce3c0$0$925$Bonjour,
Dans une macro, je récupère des valeurs de cellules d'une feuille d'un
classeur pour les copier dans une feuille "récap" d'un autre classeur.
Si une cellule n'est pas renseignée(ex Remise ou Montant Avoir), la
cellule de destination reste vide et je pense que vous l'aurez compris
avec l'extrait ci-dessous, il y a un seul enregistrement complet par
ligne.
Mais lorsque cette même cellule est renseignée, la copie s'effectue sur
la première cellule vide correspondante trouvée et ne correspond pas
avec la bonne ligne.
Que faut'il modifier pour "forcer" l'écriture sur la bonne ligne ?
Merci
NewsMic
Sheets("récap").Range("A6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B11") 'N° client
Sheets("récap").Range("C6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H4") 'N° facture
Sheets("récap").Range("D6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F43") 'Montant réglé
Sheets("récap").Range("E6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H39") 'Montant facturé
Sheets("récap").Range("F6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F10") 'Nom client
Sheets("récap").Range("G6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H43") 'Mode de règlement
Sheets("récap").Range("I6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H36") 'Total articles
Sheets("récap").Range("J6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H37") 'Frais
Sheets("récap").Range("K6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H38") 'Remise
Sheets("récap").Range("N6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B13") 'Support
Sheets("récap").Range("O6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B14") 'Action
Sheets("récap").Range("P6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F46") 'Montant Avoir
Sheets("récap").Range("Q6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H47") 'N° facture Avoir
Bonjour,
J'ai un souci. Lors de la première utilisation de la macro modifiée, dans
le fichier de destination, la copie écrase toutes les cellules du 1er
enregistrement au lieu de s'ajouter à la fin
J'ai modifié la ligne en
maXlig = Range("C6553").End(xlUp).Row
(La colonne C étant celle du n° de facture n'étant jamais vide)
Les 2 fichiers étant ouverts, est ce qu'il faut mettre cette ligne à un
endroit précis de la macro pour que la valeur maXlig s'initialise ?
Puis j'ai modifié toutes les lignes exactement comme dans votre réponse :
ex : Sheets("récap").Range("A" & maXlig).End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
NewsMic
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
ONlZ44q5IHA.3784@TK2MSFTNGP06.phx.gbl...
Bonsoir,
Il faudrait n'utiliser qu'une fois range("toto").End(xlUp) pour
renseigner une variable, soit sur la colonne qui contiens à coup sur le
plus grand nombre de ligne, soit en testant toutes les colonnes
concernées et en détectant la valeur max.
Ainsi :
maXlig=range("toto").End(xlUp).row
ou bien
maXlig = application.worksheetfunction.max(Sheets("récap") _
.Range("A6553").End(xlUp).row, Sheets("récap").Range _
("B6553").End(xlUp).,...)
Ensuite la syntaxe serait du type :
Sheets("récap").Range("A" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("B11") 'N° client
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"NewsMic" <britannicus60@wanadoo.fr> a écrit dans le message de
news:487ce3c0$0$925$ba4acef3@news.orange.fr...
Bonjour,
Dans une macro, je récupère des valeurs de cellules d'une feuille d'un
classeur pour les copier dans une feuille "récap" d'un autre classeur.
Si une cellule n'est pas renseignée(ex Remise ou Montant Avoir), la
cellule de destination reste vide et je pense que vous l'aurez compris
avec l'extrait ci-dessous, il y a un seul enregistrement complet par
ligne.
Mais lorsque cette même cellule est renseignée, la copie s'effectue sur
la première cellule vide correspondante trouvée et ne correspond pas
avec la bonne ligne.
Que faut'il modifier pour "forcer" l'écriture sur la bonne ligne ?
Merci
NewsMic
Sheets("récap").Range("A6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B11") 'N° client
Sheets("récap").Range("C6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H4") 'N° facture
Sheets("récap").Range("D6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F43") 'Montant réglé
Sheets("récap").Range("E6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H39") 'Montant facturé
Sheets("récap").Range("F6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F10") 'Nom client
Sheets("récap").Range("G6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H43") 'Mode de règlement
Sheets("récap").Range("I6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H36") 'Total articles
Sheets("récap").Range("J6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H37") 'Frais
Sheets("récap").Range("K6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H38") 'Remise
Sheets("récap").Range("N6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B13") 'Support
Sheets("récap").Range("O6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B14") 'Action
Sheets("récap").Range("P6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F46") 'Montant Avoir
Sheets("récap").Range("Q6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H47") 'N° facture Avoir
Bonjour,
J'ai un souci. Lors de la première utilisation de la macro modifiée, dans
le fichier de destination, la copie écrase toutes les cellules du 1er
enregistrement au lieu de s'ajouter à la fin
J'ai modifié la ligne en
maXlig = Range("C6553").End(xlUp).Row
(La colonne C étant celle du n° de facture n'étant jamais vide)
Les 2 fichiers étant ouverts, est ce qu'il faut mettre cette ligne à un
endroit précis de la macro pour que la valeur maXlig s'initialise ?
Puis j'ai modifié toutes les lignes exactement comme dans votre réponse :
ex : Sheets("récap").Range("A" & maXlig).End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
NewsMic
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:Bonsoir,
Il faudrait n'utiliser qu'une fois range("toto").End(xlUp) pour
renseigner une variable, soit sur la colonne qui contiens à coup sur le
plus grand nombre de ligne, soit en testant toutes les colonnes
concernées et en détectant la valeur max.
Ainsi :
maXlig=range("toto").End(xlUp).row
ou bien
maXlig = application.worksheetfunction.max(Sheets("récap") _
.Range("A6553").End(xlUp).row, Sheets("récap").Range _
("B6553").End(xlUp).,...)
Ensuite la syntaxe serait du type :
Sheets("récap").Range("A" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B" & maXlig).End(xlUp).Offset(1, 0) _
= Sheets(Onglet).Range("B11") 'N° client
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"NewsMic" a écrit dans le message de
news:487ce3c0$0$925$Bonjour,
Dans une macro, je récupère des valeurs de cellules d'une feuille d'un
classeur pour les copier dans une feuille "récap" d'un autre classeur.
Si une cellule n'est pas renseignée(ex Remise ou Montant Avoir), la
cellule de destination reste vide et je pense que vous l'aurez compris
avec l'extrait ci-dessous, il y a un seul enregistrement complet par
ligne.
Mais lorsque cette même cellule est renseignée, la copie s'effectue sur
la première cellule vide correspondante trouvée et ne correspond pas
avec la bonne ligne.
Que faut'il modifier pour "forcer" l'écriture sur la bonne ligne ?
Merci
NewsMic
Sheets("récap").Range("A6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H6") 'Date
Sheets("récap").Range("B6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B11") 'N° client
Sheets("récap").Range("C6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H4") 'N° facture
Sheets("récap").Range("D6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F43") 'Montant réglé
Sheets("récap").Range("E6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H39") 'Montant facturé
Sheets("récap").Range("F6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F10") 'Nom client
Sheets("récap").Range("G6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H43") 'Mode de règlement
Sheets("récap").Range("I6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H36") 'Total articles
Sheets("récap").Range("J6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H37") 'Frais
Sheets("récap").Range("K6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H38") 'Remise
Sheets("récap").Range("N6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B13") 'Support
Sheets("récap").Range("O6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("B14") 'Action
Sheets("récap").Range("P6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("F46") 'Montant Avoir
Sheets("récap").Range("Q6553").End(xlUp).Offset(1, 0) =
Sheets(Onglet).Range("H47") 'N° facture Avoir