Bonjour,
j'ai avec l'aide de certain d'entre vous réalisé une macro (complexe pour moi) pour generé une base de donné, à partir de plusieur feuille XLS, qui me sert apres pour la réalisation d'un TCD.
cela fonctionne bien. j'ai donc dupliqué la macro sur plusieurs classeurs (8) et cela fonctionne mais pas sur tous (2).
J'ai beau tourner le problème dans tous les sens et refaire les manipes de duplication de macro, je ne trouve pas.
le message d'erreur : erreur d'éxecution 1004 : la méthode select de la classe Worksheet a échoué
la macro : les parties en noir ne posent pas de soucis, en couleur or l'arret de la macro
Sub majtreso()
'
' majtreso Macro
'
Application.ScreenUpdating = False
'
Cells.Select
Sheets("base").Select
Cells.Select
Selection.Delete Shift:=xlUp
Cells.Select
Sheets("IL1-1").Select
Rows("7:7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("base").Select
Rows("1:1").Select
ActiveSheet.Paste
Cells.Select
Dim nombre_feuille As Integer
Dim feuille As Integer
Dim ligne As Integer
Dim nombre_ligne As Integer
Dim ligne_destination As Integer
Dim valeur_cherche As String
ligne_destination = 2
nombre_feuille = Sheets.Count - 1
For feuille = 1 To nombre_feuille
'Worksheets(feuille + 1).Select
nombre_ligne = Worksheets(feuille + 1).Range("a65535").End(xlUp).Row
For ligne = 1 To nombre_ligne
Worksheets(feuille + 1).Select
valeur_cherche = Worksheets(feuille + 1).Cells(ligne, 1).Value
If valeur_cherche = "1" Or valeur_cherche = "2" Then
Worksheets(feuille + 1).Rows(ligne).Select
Selection.Copy
Sheets("base").Select
Rows(ligne_destination).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ligne_destination = ligne_destination + 1
End If
Next ligne
Next feuille
Application.ScreenUpdating = True
Sheets("tréso").Select
Range("A7").Select
ActiveWorkbook.RefreshAll
End Sub
les variables l'ors du debogage :
nombre_feuille 34 integer
feuille 10 integer
ligne 1 integer
nombre_ligne 12 integer
ligne_destination 61 integer
valeur_cherche "0" string
je vous mets en image la structure du vbaprojet
ma demande : pourquoi ca marche pas sur ce classeur ? une piste de recherche serait la bien venu
Merci de m'avoir lut, de m'aider
j'ai avec l'aide de certain d'entre vous réalisé une macro (complexe pour moi) pour generé une base de donné, à partir de plusieur feuille XLS, qui me sert apres pour la réalisation d'un TCD.
cela fonctionne bien. j'ai donc dupliqué la macro sur plusieurs classeurs (8) et cela fonctionne mais pas sur tous (2).
J'ai beau tourner le problème dans tous les sens et refaire les manipes de duplication de macro, je ne trouve pas.
le message d'erreur : erreur d'éxecution 1004 : la méthode select de la classe Worksheet a échoué
la macro : les parties en noir ne posent pas de soucis, en couleur or l'arret de la macro
Sub majtreso()
'
' majtreso Macro
'
Application.ScreenUpdating = False
'
Cells.Select
Sheets("base").Select
Cells.Select
Selection.Delete Shift:=xlUp
Cells.Select
Sheets("IL1-1").Select
Rows("7:7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("base").Select
Rows("1:1").Select
ActiveSheet.Paste
Cells.Select
Dim nombre_feuille As Integer
Dim feuille As Integer
Dim ligne As Integer
Dim nombre_ligne As Integer
Dim ligne_destination As Integer
Dim valeur_cherche As String
ligne_destination = 2
nombre_feuille = Sheets.Count - 1
For feuille = 1 To nombre_feuille
'Worksheets(feuille + 1).Select
nombre_ligne = Worksheets(feuille + 1).Range("a65535").End(xlUp).Row
For ligne = 1 To nombre_ligne
Worksheets(feuille + 1).Select
valeur_cherche = Worksheets(feuille + 1).Cells(ligne, 1).Value
If valeur_cherche = "1" Or valeur_cherche = "2" Then
Worksheets(feuille + 1).Rows(ligne).Select
Selection.Copy
Sheets("base").Select
Rows(ligne_destination).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ligne_destination = ligne_destination + 1
End If
Next ligne
Next feuille
Application.ScreenUpdating = True
Sheets("tréso").Select
Range("A7").Select
ActiveWorkbook.RefreshAll
End Sub
les variables l'ors du debogage :
nombre_feuille 34 integer
feuille 10 integer
ligne 1 integer
nombre_ligne 12 integer
ligne_destination 61 integer
valeur_cherche "0" string
je vous mets en image la structure du vbaprojet

ma demande : pourquoi ca marche pas sur ce classeur ? une piste de recherche serait la bien venu
Merci de m'avoir lut, de m'aider
Pièces jointes
Dernière édition: