Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

aide sur une macro

8 réponses
Avatar
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

8 réponses

Avatar
isabelle
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




Avatar
ptck
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







Avatar
PMO
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
Avatar
ptck
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





Avatar
PMO
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

Avatar
ptck
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





Avatar
PMO
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

Avatar
ptck
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