aide sur une macro de débutant

Le
ptck
bonsoir
débutant en macro,

j'ai cette la macro ci dessous qui recopie des cellules dans la feuille
"recap" de tous les onglets du classeur,
mais j'ai une copie de 3 fois les données d'un même onglet

en plus si je ne tiens pas compte de la ligne "on error resume next"
il y a un message "variable objet ou variable de bloc with non définie"

si qq veut bien m'aider je l'en remercie par avance


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
'If Err <> 0 Then Exit Sub
' Else if
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
Daniel.C
Le #6434651
Bonsoir.
Il faut qualifier les plages que tu copies; si tu mets seulement "Range" oou
"Cells", tu copies les plages de la feuille active :

Sub CopieFeuille()
Dim lgn1, lgn2, lgn3, lgn4 As Long

Sheets("recap").[A1].CurrentRegion.Offset(1, 0).Clear

With Sheets(s)
For s = 2 To Sheets.Count
On Error Resume Next
lgn1 = .Columns("B:B").Find(What:="fabrication").Row + 4
'If Err <> 0 Then Exit Sub
' Else if
lgn2 = .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 = .Columns("B:B").Find(What:="INGREDIENTS").Row + 2

lgn4 = .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 With
End Sub

Cordialement.
Daniel
"ptck"
bonsoir
débutant en macro,

j'ai cette la macro ci dessous qui recopie des cellules dans la feuille
"recap" de tous les onglets du classeur,
mais j'ai une copie de 3 fois les données d'un même onglet

en plus si je ne tiens pas compte de la ligne "on error resume next"
il y a un message "variable objet ou variable de bloc with non définie"

si qq veut bien m'aider je l'en remercie par avance


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
'If Err <> 0 Then Exit Sub
' Else if
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 #6476601
merci Daniel

mais je ne vois pas comment faire

"Daniel.C"
Bonsoir.
Il faut qualifier les plages que tu copies; si tu mets seulement "Range"
oou "Cells", tu copies les plages de la feuille active :

Sub CopieFeuille()
Dim lgn1, lgn2, lgn3, lgn4 As Long

Sheets("recap").[A1].CurrentRegion.Offset(1, 0).Clear

With Sheets(s)
For s = 2 To Sheets.Count
On Error Resume Next
lgn1 = .Columns("B:B").Find(What:="fabrication").Row + 4
'If Err <> 0 Then Exit Sub
' Else if
lgn2 = .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 = .Columns("B:B").Find(What:="INGREDIENTS").Row + 2

lgn4 = .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 With
End Sub

Cordialement.
Daniel
"ptck"
bonsoir
débutant en macro,

j'ai cette la macro ci dessous qui recopie des cellules dans la feuille
"recap" de tous les onglets du classeur,
mais j'ai une copie de 3 fois les données d'un même onglet

en plus si je ne tiens pas compte de la ligne "on error resume next"
il y a un message "variable objet ou variable de bloc with non définie"

si qq veut bien m'aider je l'en remercie par avance


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
'If Err <> 0 Then Exit Sub
' Else if
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








Daniel.C
Le #6486631
Bonsoir.
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
'If Err <> 0 Then Exit Sub
' Else if
lgn2 = Sheets(s).Columns("B:B").Find(What:="INGREDIENTS").Row - 1
If Err <> 0 Then
Exit Sub
Else
Sheets(s).Range(Cells(lgn1, 2), Sheets(s).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

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

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

Next s
End Sub
Daniel

"ptck"
merci Daniel

mais je ne vois pas comment faire

"Daniel.C"
Bonsoir.
Il faut qualifier les plages que tu copies; si tu mets seulement "Range"
oou "Cells", tu copies les plages de la feuille active :

Sub CopieFeuille()
Dim lgn1, lgn2, lgn3, lgn4 As Long

Sheets("recap").[A1].CurrentRegion.Offset(1, 0).Clear

With Sheets(s)
For s = 2 To Sheets.Count
On Error Resume Next
lgn1 = .Columns("B:B").Find(What:="fabrication").Row + 4
'If Err <> 0 Then Exit Sub
' Else if
lgn2 = .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 = .Columns("B:B").Find(What:="INGREDIENTS").Row + 2

lgn4 = .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 With
End Sub

Cordialement.
Daniel
"ptck"
bonsoir
débutant en macro,

j'ai cette la macro ci dessous qui recopie des cellules dans la feuille
"recap" de tous les onglets du classeur,
mais j'ai une copie de 3 fois les données d'un même onglet

en plus si je ne tiens pas compte de la ligne "on error resume next"
il y a un message "variable objet ou variable de bloc with non définie"

si qq veut bien m'aider je l'en remercie par avance


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
'If Err <> 0 Then Exit Sub
' Else if
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












Publicité
Poster une réponse
Anonyme