aide sur une macro

Le
ptck
Bonsoir
Je reviens sur la macro ci dessous elle recopie autant de fois que d'onglet
les infos de
l'onglet actif. je cherche mais ne sait pas faire

Daniel. C m'a gentillement répondu ""Il faut qualifier les plages que tu
copies; si tu mets seulement "Range" oou
"Cells", tu copies les plages de la feuille active :""

le "s" doit correspondre au différent onglet, mais voilà je ne comprend pas
ce qu'il fait faire

merci de votre aide

Sub CopieFeuille()
Dim lgn1, lgn2, lgn3, lgn4 As Long
Sheets("recap").[A1].CurrentRegion.Offset(1, 0).Clear

For s = 2 To Sheets.Count

On Error Resume Next
lgn1 = Sheets(s).Columns("B:B").Find(What:="fabrication").Row + 4

lgn2 = Sheets(s).Columns("B:B").Find(What:="INGREDIENTS").Row - 1
If Err <> 0 Then
Exit Sub
Else
Range(Cells(lgn1, 2), Cells(lgn2, 4)).Copy

End If

Sheets("recap").Range("A65536").End(xlUp).Offset(1).PasteSpecial
Paste:=xlPasteValues

lgn3 = Sheets(s).Columns("B:B").Find(What:="INGREDIENTS").Row + 2

lgn4 = Sheets(s).Columns("B:B").Find(What:="POUSSAGE / ETUVAGE /
SECHAGE").Row - 1

Range(Cells(lgn3, 2), Cells(lgn4, 4)).Copy

Sheets("recap").Range("A65536").End(xlUp).Offset(1).PasteSpecial
Paste:=xlPasteValues

Next s
End Sub
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #6534431
bonjour patrick,

remplace
Range(Cells(lgn1, 2), Cells(lgn2, 4)).Copy

par
Sheets(s).Range(Cells(lgn1, 2), Cells(lgn2, 4)).Copy

isabelle

Bonsoir
Je reviens sur la macro ci dessous elle recopie autant de fois que d'onglet
les infos de
l'onglet actif. je cherche mais ne sait pas faire

Daniel. C m'a gentillement répondu ""Il faut qualifier les plages que tu
copies; si tu mets seulement "Range" oou
"Cells", tu copies les plages de la feuille active :""

le "s" doit correspondre au différent onglet, mais voilà je ne comprend pas
ce qu'il fait faire

merci de votre aide

Sub CopieFeuille()
Dim lgn1, lgn2, lgn3, lgn4 As Long
Sheets("recap").[A1].CurrentRegion.Offset(1, 0).Clear

For s = 2 To Sheets.Count

On Error Resume Next
lgn1 = Sheets(s).Columns("B:B").Find(What:="fabrication").Row + 4

lgn2 = Sheets(s).Columns("B:B").Find(What:="INGREDIENTS").Row - 1
If Err <> 0 Then
Exit Sub
Else
Range(Cells(lgn1, 2), Cells(lgn2, 4)).Copy

End If

Sheets("recap").Range("A65536").End(xlUp).Offset(1).PasteSpecial
Paste:=xlPasteValues

lgn3 = Sheets(s).Columns("B:B").Find(What:="INGREDIENTS").Row + 2

lgn4 = Sheets(s).Columns("B:B").Find(What:="POUSSAGE / ETUVAGE /
SECHAGE").Row - 1

Range(Cells(lgn3, 2), Cells(lgn4, 4)).Copy

Sheets("recap").Range("A65536").End(xlUp).Offset(1).PasteSpecial
Paste:=xlPasteValues

Next s
End Sub




ptck
Le #6539511
Merci Isabelle pour ce tuyau
mais cette fois la macro copie la 1ère plage passe à la suivante et la
copie 5 fois soit le nombre d'onglet

j'ai bien remplacé les 2 lignes de copy
je joint le fichier

ptck
http://www.cijoint.fr/cjlink.php?file=cj200805/cijDtbK6T9.xls.



"isabelle" a écrit dans le message de news:

bonjour patrick,

remplace
Range(Cells(lgn1, 2), Cells(lgn2, 4)).Copy

par
Sheets(s).Range(Cells(lgn1, 2), Cells(lgn2, 4)).Copy

isabelle

Bonsoir
Je reviens sur la macro ci dessous elle recopie autant de fois que
d'onglet les infos de
l'onglet actif. je cherche mais ne sait pas faire

Daniel. C m'a gentillement répondu ""Il faut qualifier les plages que tu
copies; si tu mets seulement "Range" oou
"Cells", tu copies les plages de la feuille active :""

le "s" doit correspondre au différent onglet, mais voilà je ne comprend
pas ce qu'il fait faire

merci de votre aide

Sub CopieFeuille()
Dim lgn1, lgn2, lgn3, lgn4 As Long
Sheets("recap").[A1].CurrentRegion.Offset(1, 0).Clear

For s = 2 To Sheets.Count

On Error Resume Next
lgn1 = Sheets(s).Columns("B:B").Find(What:="fabrication").Row + 4

lgn2 = Sheets(s).Columns("B:B").Find(What:="INGREDIENTS").Row - 1
If Err <> 0 Then
Exit Sub
Else
Range(Cells(lgn1, 2), Cells(lgn2, 4)).Copy

End If

Sheets("recap").Range("A65536").End(xlUp).Offset(1).PasteSpecial
Paste:=xlPasteValues

lgn3 = Sheets(s).Columns("B:B").Find(What:="INGREDIENTS").Row + 2

lgn4 = Sheets(s).Columns("B:B").Find(What:="POUSSAGE / ETUVAGE /
SECHAGE").Row - 1

Range(Cells(lgn3, 2), Cells(lgn4, 4)).Copy

Sheets("recap").Range("A65536").End(xlUp).Offset(1).PasteSpecial
Paste:=xlPasteValues

Next s
End Sub







PMO
Le #6546031
Bonjour,

Essayez avec votre macro modifiée ci-dessous

'******************
Sub CopieFeuille_pmo()
Dim i&
Dim lgn1&
Dim lgn2&
Dim lgn3&
Dim lgn4&
Dim S1 As Worksheet 'Feuille destination ("recap")
Dim S2 As Worksheet 'Feuille source
Set S1 = Sheets("recap")
S1.[a1].CurrentRegion.Offset(1, 0).Clear
For i& = 2 To Sheets.Count
Set S2 = Sheets(i&)
S2.Activate
On Error Resume Next
lgn1 = S2.Columns("B:B").Find(What:="fabrication").Row + 4
lgn2 = S2.Columns("B:B").Find(What:="INGREDIENTS").Row - 1
If Err <> 0 Then
Exit Sub
Else
S2.Range(Cells(lgn1, 2), Cells(lgn2, 4)).Copy
End If
S1.Activate
S1.Range("A65536").End(xlUp).Offset(1). _
PasteSpecial Paste:=xlPasteValues
S2.Activate
lgn3 = S2.Columns("B:B").Find(What:="INGREDIENTS").Row + 2
lgn4 = S2.Columns("B:B").Find( _
What:="POUSSAGE / ETUVAGE / SECHAGE").Row - 1
S2.Range(Cells(lgn3, 2), Cells(lgn4, 4)).Copy
S1.Activate
S1.Range("A65536").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
Next i&
[a1].Select
End Sub
'******************

Cordialement.

PMO
Patrick Morange
ptck
Le #6551861
Merci beaucoup

mais que veut dire le "&& de dim lgn1&

merci encore


"PMO" <patrickPOINTmorangeAROBASElapostePOINTnet> a écrit dans le message de
news:
Bonjour,

Essayez avec votre macro modifiée ci-dessous

'******************
Sub CopieFeuille_pmo()
Dim i&
Dim lgn1&
Dim lgn2&
Dim lgn3&
Dim lgn4&
Dim S1 As Worksheet 'Feuille destination ("recap")
Dim S2 As Worksheet 'Feuille source
Set S1 = Sheets("recap")
S1.[a1].CurrentRegion.Offset(1, 0).Clear
For i& = 2 To Sheets.Count
Set S2 = Sheets(i&)
S2.Activate
On Error Resume Next
lgn1 = S2.Columns("B:B").Find(What:="fabrication").Row + 4
lgn2 = S2.Columns("B:B").Find(What:="INGREDIENTS").Row - 1
If Err <> 0 Then
Exit Sub
Else
S2.Range(Cells(lgn1, 2), Cells(lgn2, 4)).Copy
End If
S1.Activate
S1.Range("A65536").End(xlUp).Offset(1). _
PasteSpecial Paste:=xlPasteValues
S2.Activate
lgn3 = S2.Columns("B:B").Find(What:="INGREDIENTS").Row + 2
lgn4 = S2.Columns("B:B").Find( _
What:="POUSSAGE / ETUVAGE / SECHAGE").Row - 1
S2.Range(Cells(lgn3, 2), Cells(lgn4, 4)).Copy
S1.Activate
S1.Range("A65536").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
Next i&
[a1].Select
End Sub
'******************

Cordialement.

PMO
Patrick Morange





PMO
Le #6553461
Bonjour,

mais que veut dire le "&" de dim lgn1&


C'est le typage de variable par suffixe et le & signifie Long
Cela équivaut à Dim lgn1 As Long

Cordialement.

PMO
Patrick Morange

ptck
Le #6553451
ok merci

si je puis abuser
je voudrai récupérer le nom de l'onglet en colone D
je voulais faire une boucle en cherchant la dernière celulle non vide de la
cononne D et recopier jusqu'à la
dernière cellule non de la colonne C puis à droite. le nom de l'onglet.

suis je sur la bonne piste
merci encore



"PMO" <patrickPOINTmorangeAROBASElapostePOINTnet> a écrit dans le message de
news:
Bonjour,

mais que veut dire le "&" de dim lgn1&


C'est le typage de variable par suffixe et le & signifie Long
Cela équivaut à Dim lgn1 As Long

Cordialement.

PMO
Patrick Morange





PMO
Le #6554341
Bonjour,

je voudrai récupérer le nom de l'onglet en colone D


Votre code modifiée ci-dessous

'**********
Sub CopieFeuille_pmo2()
Dim i&
Dim lgn1&
Dim lgn2&
Dim lgn3&
Dim lgn4&
Dim S1 As Worksheet 'Feuille destination ("recap")
Dim S2 As Worksheet 'Feuille source
Dim debut&
Dim fin&
Set S1 = Sheets("recap")
S1.[a1].CurrentRegion.Offset(1, 0).Clear
debut& = 2
For i& = 2 To Sheets.Count
Set S2 = Sheets(i&)
S2.Activate
On Error Resume Next
lgn1 = S2.Columns("B:B").Find(What:="fabrication").Row + 4
lgn2 = S2.Columns("B:B").Find(What:="INGREDIENTS").Row - 1
If Err <> 0 Then
S1.Activate
S1.[a1].Select
Exit Sub
Else
S2.Range(Cells(lgn1, 2), Cells(lgn2, 4)).Copy
End If
S1.Activate
S1.Range("A65536").End(xlUp).Offset(1). _
PasteSpecial Paste:=xlPasteValues
S2.Activate
lgn3 = S2.Columns("B:B").Find(What:="INGREDIENTS").Row + 2
lgn4 = S2.Columns("B:B").Find( _
What:="POUSSAGE / ETUVAGE / SECHAGE").Row - 1
S2.Range(Cells(lgn3, 2), Cells(lgn4, 4)).Copy
S1.Activate
S1.Range("A65536").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
fin& = S1.[a1].CurrentRegion.Rows.Count
S1.Range(Cells(debut&, 4), Cells(fin&, 4)) = S2.Name
debut& = fin& + 1
Next i&
[a1].Select
End Sub
'**********

Cordialement.

PMO
Patrick Morange

ptck
Le #6558311
Merci
débutant en macro ce petit programe va bien me servir pour d'autre chose
encore merci beaucoup

ptck

"PMO" <patrickPOINTmorangeAROBASElapostePOINTnet> a écrit dans le message de
news:
Bonjour,

je voudrai récupérer le nom de l'onglet en colone D


Votre code modifiée ci-dessous

'**********
Sub CopieFeuille_pmo2()
Dim i&
Dim lgn1&
Dim lgn2&
Dim lgn3&
Dim lgn4&
Dim S1 As Worksheet 'Feuille destination ("recap")
Dim S2 As Worksheet 'Feuille source
Dim debut&
Dim fin&
Set S1 = Sheets("recap")
S1.[a1].CurrentRegion.Offset(1, 0).Clear
debut& = 2
For i& = 2 To Sheets.Count
Set S2 = Sheets(i&)
S2.Activate
On Error Resume Next
lgn1 = S2.Columns("B:B").Find(What:="fabrication").Row + 4
lgn2 = S2.Columns("B:B").Find(What:="INGREDIENTS").Row - 1
If Err <> 0 Then
S1.Activate
S1.[a1].Select
Exit Sub
Else
S2.Range(Cells(lgn1, 2), Cells(lgn2, 4)).Copy
End If
S1.Activate
S1.Range("A65536").End(xlUp).Offset(1). _
PasteSpecial Paste:=xlPasteValues
S2.Activate
lgn3 = S2.Columns("B:B").Find(What:="INGREDIENTS").Row + 2
lgn4 = S2.Columns("B:B").Find( _
What:="POUSSAGE / ETUVAGE / SECHAGE").Row - 1
S2.Range(Cells(lgn3, 2), Cells(lgn4, 4)).Copy
S1.Activate
S1.Range("A65536").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
fin& = S1.[a1].CurrentRegion.Rows.Count
S1.Range(Cells(debut&, 4), Cells(fin&, 4)) = S2.Name
debut& = fin& + 1
Next i&
[a1].Select
End Sub
'**********

Cordialement.

PMO
Patrick Morange




Publicité
Poster une réponse
Anonyme