MACRO EXCEL - erreur objet
Résolu
BipBip
-
BipBip -
BipBip -
Bonjour à tous,
j'ai fait un code pour copier la feuille "A", la renommer par une valeur contenue dans la feuille "B" et ensuite sur cette nouvelle feuille supprimer les colonnes dont la valeur en ligne 2 est différente de Qx ou "ok"...
J'ai une erreur à la ligne en gras, du type "erreur définie par l'application ou par l'objet"
Je ne sais plus quoi faire ! Merci d'avance poyur votre aide!
Salutations
Sub Copie()
Dim i, z, c
z = 7
Q = "Q" & i
For i = 1 To z
Q = "Q" & i
Sheets("A").Activate
Sheets("A").Copy after:=Sheets("B")
ActiveSheet.Name = Worksheets("B").Range("A" & i).Value
For c = 480 To 159 Step -1
If Sheets(Q).Range(2, c).Value <> Q And "ok" Then
Sheets(Q).Range(2, c).EntireColumn.Delete
End If
Next c
Next i
End Sub
j'ai fait un code pour copier la feuille "A", la renommer par une valeur contenue dans la feuille "B" et ensuite sur cette nouvelle feuille supprimer les colonnes dont la valeur en ligne 2 est différente de Qx ou "ok"...
J'ai une erreur à la ligne en gras, du type "erreur définie par l'application ou par l'objet"
Je ne sais plus quoi faire ! Merci d'avance poyur votre aide!
Salutations
Sub Copie()
Dim i, z, c
z = 7
Q = "Q" & i
For i = 1 To z
Q = "Q" & i
Sheets("A").Activate
Sheets("A").Copy after:=Sheets("B")
ActiveSheet.Name = Worksheets("B").Range("A" & i).Value
For c = 480 To 159 Step -1
If Sheets(Q).Range(2, c).Value <> Q And "ok" Then
Sheets(Q).Range(2, c).EntireColumn.Delete
End If
Next c
Next i
End Sub
A voir également:
- MACRO EXCEL - erreur objet
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
3 réponses
Bonjour,
Il n'est pas facile de répondre sans connaître la version d'Excel et sans exemple de fichier qui plante !
Je suppose que tu utilises une version 2007 ou 2010 (avec plus de 256 colonnes), sinon c'est dèja une cause d'erreur.
Comme le dit david_wklw selon le cas, le contenu de la feuille B en A1:A7 peut provoquer une erreur.
Par contre le code suivant est erroné :
Il conviendrait d'écrire :
Il n'est pas facile de répondre sans connaître la version d'Excel et sans exemple de fichier qui plante !
Je suppose que tu utilises une version 2007 ou 2010 (avec plus de 256 colonnes), sinon c'est dèja une cause d'erreur.
Comme le dit david_wklw selon le cas, le contenu de la feuille B en A1:A7 peut provoquer une erreur.
Par contre le code suivant est erroné :
If Sheets(Q).Range(2, c).Value <> Q And "ok" Then Sheets(Q).Range(2, c).EntireColumn.Delete
Il conviendrait d'écrire :
If Sheets(Q).Cells(2, c).Value <> Q And Sheets(Q).Cells(2, c).Value <>"ok" Then Sheets(Q).Cells(2, c).EntireColumn.Delete
C'est ca qui est faux ?
ActiveSheet.Name = Worksheets("B").Range("A" & i).Value
Il y a noté quoi dans la feuille B, cellule A1 ?
ActiveSheet.Name = Worksheets("B").Range("A" & i).Value
Il y a noté quoi dans la feuille B, cellule A1 ?
Au passage quelle est la différence entre le deux?
Merci encore
Mais bon... merci. A partir de maintenant je ferai la différence !