Bonjour,
j'ai une macro qui recherche sur chaque ligne si la valeur en colonne 7 est
"matmut".
Si vrai = ça copie tte la ligne et ça la colle dans un autre ongl et puis la
macro passe à la ligne d'en dessous.
Si faux = ça passe à la ligne d'en dessous
Plutôt que de copier la ligne entière je voudrais pouvoir copier un iquement
les cellules qui m'interesse : colonne 1, colonne 3, colonne 8 etc etc.
Ci dessous un bout de la macro que j'utilise :
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 7).Value = "matmut" Then
Rw.Copy Destination:=Worksheets("test").Cells(Ligne, 1).EntireRow
End If
Next Rw
Comment la modifier?
merci
JBF
Bonjour,
j'ai une macro qui recherche sur chaque ligne si la valeur en colonne 7 est
"matmut".
Si vrai = ça copie tte la ligne et ça la colle dans un autre ongl et puis la
macro passe à la ligne d'en dessous.
Si faux = ça passe à la ligne d'en dessous
Plutôt que de copier la ligne entière je voudrais pouvoir copier un iquement
les cellules qui m'interesse : colonne 1, colonne 3, colonne 8 etc etc.
Ci dessous un bout de la macro que j'utilise :
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 7).Value = "matmut" Then
Rw.Copy Destination:=Worksheets("test").Cells(Ligne, 1).EntireRow
End If
Next Rw
Comment la modifier?
merci
JBF
Bonjour,
j'ai une macro qui recherche sur chaque ligne si la valeur en colonne 7 est
"matmut".
Si vrai = ça copie tte la ligne et ça la colle dans un autre ongl et puis la
macro passe à la ligne d'en dessous.
Si faux = ça passe à la ligne d'en dessous
Plutôt que de copier la ligne entière je voudrais pouvoir copier un iquement
les cellules qui m'interesse : colonne 1, colonne 3, colonne 8 etc etc.
Ci dessous un bout de la macro que j'utilise :
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 7).Value = "matmut" Then
Rw.Copy Destination:=Worksheets("test").Cells(Ligne, 1).EntireRow
End If
Next Rw
Comment la modifier?
merci
JBF
Bonjour,
j'ai une macro qui recherche sur chaque ligne si la valeur en colonne 7
est "matmut".
Si vrai = ça copie tte la ligne et ça la colle dans un autre onglet puis
la macro passe à la ligne d'en dessous.
Si faux = ça passe à la ligne d'en dessous
Plutôt que de copier la ligne entière je voudrais pouvoir copier
uniquement les cellules qui m'interesse : colonne 1, colonne 3, colonne 8
etc etc.
Ci dessous un bout de la macro que j'utilise :
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 7).Value = "matmut" Then
Rw.Copy Destination:=Worksheets("test").Cells(Ligne, 1).EntireRow
End If
Next Rw
Comment la modifier?
merci
JBF
Bonjour,
j'ai une macro qui recherche sur chaque ligne si la valeur en colonne 7
est "matmut".
Si vrai = ça copie tte la ligne et ça la colle dans un autre onglet puis
la macro passe à la ligne d'en dessous.
Si faux = ça passe à la ligne d'en dessous
Plutôt que de copier la ligne entière je voudrais pouvoir copier
uniquement les cellules qui m'interesse : colonne 1, colonne 3, colonne 8
etc etc.
Ci dessous un bout de la macro que j'utilise :
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 7).Value = "matmut" Then
Rw.Copy Destination:=Worksheets("test").Cells(Ligne, 1).EntireRow
End If
Next Rw
Comment la modifier?
merci
JBF
Bonjour,
j'ai une macro qui recherche sur chaque ligne si la valeur en colonne 7
est "matmut".
Si vrai = ça copie tte la ligne et ça la colle dans un autre onglet puis
la macro passe à la ligne d'en dessous.
Si faux = ça passe à la ligne d'en dessous
Plutôt que de copier la ligne entière je voudrais pouvoir copier
uniquement les cellules qui m'interesse : colonne 1, colonne 3, colonne 8
etc etc.
Ci dessous un bout de la macro que j'utilise :
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 7).Value = "matmut" Then
Rw.Copy Destination:=Worksheets("test").Cells(Ligne, 1).EntireRow
End If
Next Rw
Comment la modifier?
merci
JBF
Bonjour,
j'ai une macro qui recherche sur chaque ligne si la valeur en colonne 7
est "matmut".
Si vrai = ça copie tte la ligne et ça la colle dans un autre onglet puis
la macro passe à la ligne d'en dessous.
Si faux = ça passe à la ligne d'en dessous
Plutôt que de copier la ligne entière je voudrais pouvoir copier
uniquement les cellules qui m'interesse : colonne 1, colonne 3, colonne 8
etc etc.
Ci dessous un bout de la macro que j'utilise :
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 7).Value = "matmut" Then
Rw.Copy Destination:=Worksheets("test").Cells(Ligne, 1).EntireRow
End If
Next Rw
Comment la modifier?
merci
JBF
Bonjour,
j'ai une macro qui recherche sur chaque ligne si la valeur en colonne 7
est "matmut".
Si vrai = ça copie tte la ligne et ça la colle dans un autre onglet puis
la macro passe à la ligne d'en dessous.
Si faux = ça passe à la ligne d'en dessous
Plutôt que de copier la ligne entière je voudrais pouvoir copier
uniquement les cellules qui m'interesse : colonne 1, colonne 3, colonne 8
etc etc.
Ci dessous un bout de la macro que j'utilise :
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 7).Value = "matmut" Then
Rw.Copy Destination:=Worksheets("test").Cells(Ligne, 1).EntireRow
End If
Next Rw
Comment la modifier?
merci
JBF
Bonjour,
j'ai une macro qui recherche sur chaque ligne si la valeur en colonne 7
est "matmut".
Si vrai = ça copie tte la ligne et ça la colle dans un autre onglet puis
la macro passe à la ligne d'en dessous.
Si faux = ça passe à la ligne d'en dessous
Plutôt que de copier la ligne entière je voudrais pouvoir copier
uniquement les cellules qui m'interesse : colonne 1, colonne 3, colonne 8
etc etc.
Ci dessous un bout de la macro que j'utilise :
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 7).Value = "matmut" Then
Rw.Copy Destination:=Worksheets("test").Cells(Ligne, 1).EntireRow
End If
Next Rw
Comment la modifier?
merci
JBF
Bonjour,
j'ai une macro qui recherche sur chaque ligne si la valeur en colonne 7
est "matmut".
Si vrai = ça copie tte la ligne et ça la colle dans un autre onglet puis
la macro passe à la ligne d'en dessous.
Si faux = ça passe à la ligne d'en dessous
Plutôt que de copier la ligne entière je voudrais pouvoir copier
uniquement les cellules qui m'interesse : colonne 1, colonne 3, colonne 8
etc etc.
Ci dessous un bout de la macro que j'utilise :
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 7).Value = "matmut" Then
Rw.Copy Destination:=Worksheets("test").Cells(Ligne, 1).EntireRow
End If
Next Rw
Comment la modifier?
merci
JBF
Bonjour,
j'ai une macro qui recherche sur chaque ligne si la valeur en colonne 7
est "matmut".
Si vrai = ça copie tte la ligne et ça la colle dans un autre onglet puis
la macro passe à la ligne d'en dessous.
Si faux = ça passe à la ligne d'en dessous
Plutôt que de copier la ligne entière je voudrais pouvoir copier
uniquement les cellules qui m'interesse : colonne 1, colonne 3, colonne 8
etc etc.
Ci dessous un bout de la macro que j'utilise :
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 7).Value = "matmut" Then
Rw.Copy Destination:=Worksheets("test").Cells(Ligne, 1).EntireRow
End If
Next Rw
Comment la modifier?
merci
JBF
Bonjour,
j'ai une macro qui recherche sur chaque ligne si la valeur en colonne 7
est "matmut".
Si vrai = ça copie tte la ligne et ça la colle dans un autre onglet puis
la macro passe à la ligne d'en dessous.
Si faux = ça passe à la ligne d'en dessous
Plutôt que de copier la ligne entière je voudrais pouvoir copier
uniquement les cellules qui m'interesse : colonne 1, colonne 3, colonne 8
etc etc.
Ci dessous un bout de la macro que j'utilise :
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 7).Value = "matmut" Then
Rw.Copy Destination:=Worksheets("test").Cells(Ligne, 1).EntireRow
End If
Next Rw
Comment la modifier?
merci
JBF
pfff j'suis vraiment mauvais!
merci
JBF
"Corto" <mailto: a
écrit dans le message de news:
<mailto:...
Bonjour JBF,
Quand il y a un espace dans le nom de l'onglet, il faut le mettre
entre quotes
Set XZONETRAVAIL = ['A envoyer'!A1].CurrentRegion
Corto
JBF a écrit :je ne comprend pas pourquoi lorsque dans la macro "allégée" je
change l'intitulé des onglets ça me donne une erreur 424: obje t
requis sur cette ligne :
Set XZONETRAVAIL = [A envoyer!A1].CurrentRegion
L'onglet initial était [assurés!A1]. Il veut pas que je change le
nom!
"Corto" <mailto:
a écrit dans le message de news:
<mailto:...
Bonjour JBF,
http://cjoint.com/?lCkSRVSNm5
Les explications sont dans la macro Imprime_assurés_allégé e
dans le module 4
Corto
JBF a écrit :merci. ça marche mieux sans Entire.Row effectivement.
Je fais mes essais ce soir et je te dis demain ce que ça do nne.
Merci bcp
Bonne soirée
JBF
"Corto"
<mailto: a écrit dans le message
de news: %
<mailto:%...
Bonjour JBF
/J'ai déjà trouvé quelque chose, je continue demain mais
il faut remplacer/
/ XYZ.Copy
Destination:=Worksheets("test").Cells(Ligne + 2,
2).EntireRow/
par/ XYZ.Copy
Destination:=Worksheets("test").Cells(Ligne + 2, 2)/
//
Corto
JBF a écrit :et voilà : http://cjoint.com/?lBqGxMLxFn
Tu verras dans le MODULE 4 j'ai rajouté une cellule à
copier : Rw.Cells(9)
/If Rw.Cells(7).Value = "matmut" Then
Set XYZ = Union(Rw.Cells(1), Rw.Cells(3),
Rw.Cells(8), Rw.Cells(9))
XYZ.Copy
Destination:=Worksheets("test").Cells(Ligne + 2,
2).EntireRow
/
Et le résultat cloche complètement. tu t'en apercevr as
en ouvrant l'onget TEST.
Merci du (sérieux) coup de main!
JBF
"Corto"
<mailto: a écrit dans le
message de news:
<mailto:...
Bonjour JBF,
Désolé mais comme ça je ne vois pas ce qui clo che,
pourrais-tu me mettre une copie de ton classeur sur
cjoint en supprimant les éventuelles données
confidentielles et poster le lien.
Corto
JBF a écrit :Désolé ça ne change rien. J'ai toujours les m ême
problèmes.
1/ les cellules ne se décalent pas en colonne B e t
ligne 3
2/ quand je rajoute une colonne à copier, ça me
"plante" le collage.
Je te mets l'intégralité de la macro ça va pe ut
être t'aider.
Sub Impime_assurés()
' COPIE DES LIGNES DESIREES DANS LES FEUILLES DE
CALCUL DEDIEES
Dim Rw As Range
Dim Ligne As Long
' Sélectionne l'ensemble des données
Sheets("Assurés").Select
activecell.SpecialCells(xlLastCell).Select
Range(Selection, Cells(1)).Select
' Boucle qui va passer sur chaque ligne de la
sélection afin de déterminer si des lignes
contiennent le nom de la mutuelle
' puis copie dans une deuxième feuille de calcul
For Each Rw In Selection.EntireRow.Rows
Ligne = Rw.Row
If Rw.Cells(7).Value = "matmut" Then
Set XYZ = Union(Rw.Cells(1),
Rw.Cells(3), Rw.Cells(8), Rw.Cells(9))
XYZ.Copy
Destination:=Worksheets("test").Cells(Ligne + 2,
2).EntireRow
End If
Next Rw
' Supression des lignes vierges dans les feuilles
de calcul récemment constituées
Sheets("test").Activate
With ActiveSheet.UsedRange
derLi = ..Row + ..Rows.Count - 1
End With
Application.ScreenUpdating = False
For r = derLi To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).D elete
Next r
' Pop-up d'avertissement de fin de macro.
MsgBox "Le fichier est prêt pour envoi. Veuillez
effectuer un test de cohérence avant envoi.",
vbOKOnly, "Macro terminée"
End Sub
MERCI
JBF
"Corto"
<mailto: a écrit dans l e
message de news:
<mailto:.. .
(Re)Bonjour JBF,Je voudrais que les cellules soient collées à partir de la colonne B et non
de la A et à partir de la ligne 3 et non la 1 comme c'est le cas
actuellement
For Each RW In Selection.*EntireRow *.Rows
Ligne = RW.Row
If RW.Cells(7).Value = "matmut" Then
Set XYZ = Union(RW.Cells(1),
RW.Cells(3), RW.Cells(8))
XYZ.Copy
Destination:=Worksheets("test").Cells(*Ligne +
2, 2*).EntireRow
End If
Next RW
Le second problème vient du fait que ta
sélection comporte moins de 11 Colonnes, le
..EntireRow permet de corriger
Corto
JBF a écrit :Désolé c'est encore moi! ;)
Lorsque je rajoute une colonne à copier ça rate complètement au niveau du
collage :
Set XYZ = Union(Rw.Cells(1), Rw.Cells(3), Rw .Cells(8), Rw.Cells(11))
XYZ.Copy Destination:=Worksheets("test") .Cells(Ligne, 1).EntireRow
Ça colle bien les 4 cellules copiées mais ça répète l'opération sur toutes
les colonnes. C'est à dire qu'en colonne 5 ç a me recolle l'équivalent de le
colonne 1 etc etc.
Et en fait j'avais donné l'exemple sur 3 cel lules à copier sur la même ligne
pensant qu'ensuite je pourrais me débrouille r seul mais apparemment non!
J'ai 8 cellules à copier et à coller.
Merci pour ton aide.
JBF
"Corto" a écrit dans le message de news:
Bonjour JBF,
For Each RW In Selection.Rows
Ligne = RW.Row
If RW.Cells(7).Value = "matmut" Then
Set XYZ = Union(RW.Cells(1), RW. Cells(3), RW.Cells(8))
XYZ.Copy Destination:=Worksheets ("test").Cells(Ligne,
1).EntireRow
End If
Next RW
Corto
JBF a écrit :Bonjour,
j'ai une macro qui recherche sur chaque ligne si la valeur en colonne 7
est "matmut".
Si vrai = ça copie tte la ligne et ça l a colle dans un autre onglet puis
la macro passe à la ligne d'en dessous.
Si faux = ça passe à la ligne d'en dess ous
Plutôt que de copier la ligne entière je voudrais pouvoir copier
uniquement les cellules qui m'interesse : col onne 1, colonne 3, colonne 8
etc etc.
Ci dessous un bout de la macro que j'utilise :
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 7).Value = "matmut" Then
Rw.Copy Destination:=Worksheets("test").Cel ls(Ligne, 1).EntireRow
End If
Next Rw
Comment la modifier?
merci
JBF
pfff j'suis vraiment mauvais!
merci
JBF
"Corto" <fcdirckx@hotmail.com <mailto:fcdirckx@hotmail.com>> a
écrit dans le message de news:
uAlnTVUUJHA.4456@TK2MSFTNGP02.phx.gbl
<mailto:uAlnTVUUJHA.4456@TK2MSFTNGP02.phx.gbl>...
Bonjour JBF,
Quand il y a un espace dans le nom de l'onglet, il faut le mettre
entre quotes
Set XZONETRAVAIL = ['A envoyer'!A1].CurrentRegion
Corto
JBF a écrit :
je ne comprend pas pourquoi lorsque dans la macro "allégée" je
change l'intitulé des onglets ça me donne une erreur 424: obje t
requis sur cette ligne :
Set XZONETRAVAIL = [A envoyer!A1].CurrentRegion
L'onglet initial était [assurés!A1]. Il veut pas que je change le
nom!
"Corto" <fcdirckx@hotmail.com <mailto:fcdirckx@hotmail.com>>
a écrit dans le message de news:
uhs6b6TUJHA.584@TK2MSFTNGP06.phx.gbl
<mailto:uhs6b6TUJHA.584@TK2MSFTNGP06.phx.gbl>...
Bonjour JBF,
http://cjoint.com/?lCkSRVSNm5
Les explications sont dans la macro Imprime_assurés_allégé e
dans le module 4
Corto
JBF a écrit :
merci. ça marche mieux sans Entire.Row effectivement.
Je fais mes essais ce soir et je te dis demain ce que ça do nne.
Merci bcp
Bonne soirée
JBF
"Corto" <fcdirckx@hotmail.com
<mailto:fcdirckx@hotmail.com>> a écrit dans le message
de news: %23yPyJnKUJHA.5084@TK2MSFTNGP05.phx.gbl
<mailto:%23yPyJnKUJHA.5084@TK2MSFTNGP05.phx.gbl>...
Bonjour JBF
/J'ai déjà trouvé quelque chose, je continue demain mais
il faut remplacer/
/ XYZ.Copy
Destination:=Worksheets("test").Cells(Ligne + 2,
2).EntireRow/
par/ XYZ.Copy
Destination:=Worksheets("test").Cells(Ligne + 2, 2)/
//
Corto
JBF a écrit :
et voilà : http://cjoint.com/?lBqGxMLxFn
Tu verras dans le MODULE 4 j'ai rajouté une cellule à
copier : Rw.Cells(9)
/If Rw.Cells(7).Value = "matmut" Then
Set XYZ = Union(Rw.Cells(1), Rw.Cells(3),
Rw.Cells(8), Rw.Cells(9))
XYZ.Copy
Destination:=Worksheets("test").Cells(Ligne + 2,
2).EntireRow
/
Et le résultat cloche complètement. tu t'en apercevr as
en ouvrant l'onget TEST.
Merci du (sérieux) coup de main!
JBF
"Corto" <fcdirckx@hotmail.com
<mailto:fcdirckx@hotmail.com>> a écrit dans le
message de news:
Oos4V3JUJHA.5376@TK2MSFTNGP02.phx.gbl
<mailto:Oos4V3JUJHA.5376@TK2MSFTNGP02.phx.gbl>...
Bonjour JBF,
Désolé mais comme ça je ne vois pas ce qui clo che,
pourrais-tu me mettre une copie de ton classeur sur
cjoint en supprimant les éventuelles données
confidentielles et poster le lien.
Corto
JBF a écrit :
Désolé ça ne change rien. J'ai toujours les m ême
problèmes.
1/ les cellules ne se décalent pas en colonne B e t
ligne 3
2/ quand je rajoute une colonne à copier, ça me
"plante" le collage.
Je te mets l'intégralité de la macro ça va pe ut
être t'aider.
Sub Impime_assurés()
' COPIE DES LIGNES DESIREES DANS LES FEUILLES DE
CALCUL DEDIEES
Dim Rw As Range
Dim Ligne As Long
' Sélectionne l'ensemble des données
Sheets("Assurés").Select
activecell.SpecialCells(xlLastCell).Select
Range(Selection, Cells(1)).Select
' Boucle qui va passer sur chaque ligne de la
sélection afin de déterminer si des lignes
contiennent le nom de la mutuelle
' puis copie dans une deuxième feuille de calcul
For Each Rw In Selection.EntireRow.Rows
Ligne = Rw.Row
If Rw.Cells(7).Value = "matmut" Then
Set XYZ = Union(Rw.Cells(1),
Rw.Cells(3), Rw.Cells(8), Rw.Cells(9))
XYZ.Copy
Destination:=Worksheets("test").Cells(Ligne + 2,
2).EntireRow
End If
Next Rw
' Supression des lignes vierges dans les feuilles
de calcul récemment constituées
Sheets("test").Activate
With ActiveSheet.UsedRange
derLi = ..Row + ..Rows.Count - 1
End With
Application.ScreenUpdating = False
For r = derLi To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).D elete
Next r
' Pop-up d'avertissement de fin de macro.
MsgBox "Le fichier est prêt pour envoi. Veuillez
effectuer un test de cohérence avant envoi.",
vbOKOnly, "Macro terminée"
End Sub
MERCI
JBF
"Corto" <fcdirckx@hotmail.com
<mailto:fcdirckx@hotmail.com>> a écrit dans l e
message de news:
eaLI1gJUJHA.592@TK2MSFTNGP04.phx.gbl
<mailto:eaLI1gJUJHA.592@TK2MSFTNGP04.phx.gbl>.. .
(Re)Bonjour JBF,
Je voudrais que les cellules soient collées à partir de la colonne B et non
de la A et à partir de la ligne 3 et non la 1 comme c'est le cas
actuellement
For Each RW In Selection.*EntireRow *.Rows
Ligne = RW.Row
If RW.Cells(7).Value = "matmut" Then
Set XYZ = Union(RW.Cells(1),
RW.Cells(3), RW.Cells(8))
XYZ.Copy
Destination:=Worksheets("test").Cells(*Ligne +
2, 2*).EntireRow
End If
Next RW
Le second problème vient du fait que ta
sélection comporte moins de 11 Colonnes, le
..EntireRow permet de corriger
Corto
JBF a écrit :
Désolé c'est encore moi! ;)
Lorsque je rajoute une colonne à copier ça rate complètement au niveau du
collage :
Set XYZ = Union(Rw.Cells(1), Rw.Cells(3), Rw .Cells(8), Rw.Cells(11))
XYZ.Copy Destination:=Worksheets("test") .Cells(Ligne, 1).EntireRow
Ça colle bien les 4 cellules copiées mais ça répète l'opération sur toutes
les colonnes. C'est à dire qu'en colonne 5 ç a me recolle l'équivalent de le
colonne 1 etc etc.
Et en fait j'avais donné l'exemple sur 3 cel lules à copier sur la même ligne
pensant qu'ensuite je pourrais me débrouille r seul mais apparemment non!
J'ai 8 cellules à copier et à coller.
Merci pour ton aide.
JBF
"Corto" <fcdirckx@hotmail.com> a écrit dans le message de news:
eIZ85BJUJHA.4916@TK2MSFTNGP06.phx.gbl...
Bonjour JBF,
For Each RW In Selection.Rows
Ligne = RW.Row
If RW.Cells(7).Value = "matmut" Then
Set XYZ = Union(RW.Cells(1), RW. Cells(3), RW.Cells(8))
XYZ.Copy Destination:=Worksheets ("test").Cells(Ligne,
1).EntireRow
End If
Next RW
Corto
JBF a écrit :
Bonjour,
j'ai une macro qui recherche sur chaque ligne si la valeur en colonne 7
est "matmut".
Si vrai = ça copie tte la ligne et ça l a colle dans un autre onglet puis
la macro passe à la ligne d'en dessous.
Si faux = ça passe à la ligne d'en dess ous
Plutôt que de copier la ligne entière je voudrais pouvoir copier
uniquement les cellules qui m'interesse : col onne 1, colonne 3, colonne 8
etc etc.
Ci dessous un bout de la macro que j'utilise :
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 7).Value = "matmut" Then
Rw.Copy Destination:=Worksheets("test").Cel ls(Ligne, 1).EntireRow
End If
Next Rw
Comment la modifier?
merci
JBF
pfff j'suis vraiment mauvais!
merci
JBF
"Corto" <mailto: a
écrit dans le message de news:
<mailto:...
Bonjour JBF,
Quand il y a un espace dans le nom de l'onglet, il faut le mettre
entre quotes
Set XZONETRAVAIL = ['A envoyer'!A1].CurrentRegion
Corto
JBF a écrit :je ne comprend pas pourquoi lorsque dans la macro "allégée" je
change l'intitulé des onglets ça me donne une erreur 424: obje t
requis sur cette ligne :
Set XZONETRAVAIL = [A envoyer!A1].CurrentRegion
L'onglet initial était [assurés!A1]. Il veut pas que je change le
nom!
"Corto" <mailto:
a écrit dans le message de news:
<mailto:...
Bonjour JBF,
http://cjoint.com/?lCkSRVSNm5
Les explications sont dans la macro Imprime_assurés_allégé e
dans le module 4
Corto
JBF a écrit :merci. ça marche mieux sans Entire.Row effectivement.
Je fais mes essais ce soir et je te dis demain ce que ça do nne.
Merci bcp
Bonne soirée
JBF
"Corto"
<mailto: a écrit dans le message
de news: %
<mailto:%...
Bonjour JBF
/J'ai déjà trouvé quelque chose, je continue demain mais
il faut remplacer/
/ XYZ.Copy
Destination:=Worksheets("test").Cells(Ligne + 2,
2).EntireRow/
par/ XYZ.Copy
Destination:=Worksheets("test").Cells(Ligne + 2, 2)/
//
Corto
JBF a écrit :et voilà : http://cjoint.com/?lBqGxMLxFn
Tu verras dans le MODULE 4 j'ai rajouté une cellule à
copier : Rw.Cells(9)
/If Rw.Cells(7).Value = "matmut" Then
Set XYZ = Union(Rw.Cells(1), Rw.Cells(3),
Rw.Cells(8), Rw.Cells(9))
XYZ.Copy
Destination:=Worksheets("test").Cells(Ligne + 2,
2).EntireRow
/
Et le résultat cloche complètement. tu t'en apercevr as
en ouvrant l'onget TEST.
Merci du (sérieux) coup de main!
JBF
"Corto"
<mailto: a écrit dans le
message de news:
<mailto:...
Bonjour JBF,
Désolé mais comme ça je ne vois pas ce qui clo che,
pourrais-tu me mettre une copie de ton classeur sur
cjoint en supprimant les éventuelles données
confidentielles et poster le lien.
Corto
JBF a écrit :Désolé ça ne change rien. J'ai toujours les m ême
problèmes.
1/ les cellules ne se décalent pas en colonne B e t
ligne 3
2/ quand je rajoute une colonne à copier, ça me
"plante" le collage.
Je te mets l'intégralité de la macro ça va pe ut
être t'aider.
Sub Impime_assurés()
' COPIE DES LIGNES DESIREES DANS LES FEUILLES DE
CALCUL DEDIEES
Dim Rw As Range
Dim Ligne As Long
' Sélectionne l'ensemble des données
Sheets("Assurés").Select
activecell.SpecialCells(xlLastCell).Select
Range(Selection, Cells(1)).Select
' Boucle qui va passer sur chaque ligne de la
sélection afin de déterminer si des lignes
contiennent le nom de la mutuelle
' puis copie dans une deuxième feuille de calcul
For Each Rw In Selection.EntireRow.Rows
Ligne = Rw.Row
If Rw.Cells(7).Value = "matmut" Then
Set XYZ = Union(Rw.Cells(1),
Rw.Cells(3), Rw.Cells(8), Rw.Cells(9))
XYZ.Copy
Destination:=Worksheets("test").Cells(Ligne + 2,
2).EntireRow
End If
Next Rw
' Supression des lignes vierges dans les feuilles
de calcul récemment constituées
Sheets("test").Activate
With ActiveSheet.UsedRange
derLi = ..Row + ..Rows.Count - 1
End With
Application.ScreenUpdating = False
For r = derLi To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).D elete
Next r
' Pop-up d'avertissement de fin de macro.
MsgBox "Le fichier est prêt pour envoi. Veuillez
effectuer un test de cohérence avant envoi.",
vbOKOnly, "Macro terminée"
End Sub
MERCI
JBF
"Corto"
<mailto: a écrit dans l e
message de news:
<mailto:.. .
(Re)Bonjour JBF,Je voudrais que les cellules soient collées à partir de la colonne B et non
de la A et à partir de la ligne 3 et non la 1 comme c'est le cas
actuellement
For Each RW In Selection.*EntireRow *.Rows
Ligne = RW.Row
If RW.Cells(7).Value = "matmut" Then
Set XYZ = Union(RW.Cells(1),
RW.Cells(3), RW.Cells(8))
XYZ.Copy
Destination:=Worksheets("test").Cells(*Ligne +
2, 2*).EntireRow
End If
Next RW
Le second problème vient du fait que ta
sélection comporte moins de 11 Colonnes, le
..EntireRow permet de corriger
Corto
JBF a écrit :Désolé c'est encore moi! ;)
Lorsque je rajoute une colonne à copier ça rate complètement au niveau du
collage :
Set XYZ = Union(Rw.Cells(1), Rw.Cells(3), Rw .Cells(8), Rw.Cells(11))
XYZ.Copy Destination:=Worksheets("test") .Cells(Ligne, 1).EntireRow
Ça colle bien les 4 cellules copiées mais ça répète l'opération sur toutes
les colonnes. C'est à dire qu'en colonne 5 ç a me recolle l'équivalent de le
colonne 1 etc etc.
Et en fait j'avais donné l'exemple sur 3 cel lules à copier sur la même ligne
pensant qu'ensuite je pourrais me débrouille r seul mais apparemment non!
J'ai 8 cellules à copier et à coller.
Merci pour ton aide.
JBF
"Corto" a écrit dans le message de news:
Bonjour JBF,
For Each RW In Selection.Rows
Ligne = RW.Row
If RW.Cells(7).Value = "matmut" Then
Set XYZ = Union(RW.Cells(1), RW. Cells(3), RW.Cells(8))
XYZ.Copy Destination:=Worksheets ("test").Cells(Ligne,
1).EntireRow
End If
Next RW
Corto
JBF a écrit :Bonjour,
j'ai une macro qui recherche sur chaque ligne si la valeur en colonne 7
est "matmut".
Si vrai = ça copie tte la ligne et ça l a colle dans un autre onglet puis
la macro passe à la ligne d'en dessous.
Si faux = ça passe à la ligne d'en dess ous
Plutôt que de copier la ligne entière je voudrais pouvoir copier
uniquement les cellules qui m'interesse : col onne 1, colonne 3, colonne 8
etc etc.
Ci dessous un bout de la macro que j'utilise :
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 7).Value = "matmut" Then
Rw.Copy Destination:=Worksheets("test").Cel ls(Ligne, 1).EntireRow
End If
Next Rw
Comment la modifier?
merci
JBF