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

Erreur de code VBA

12 réponses
Avatar
Sunburn
Bonjour,
j'ai un code VBA qui marchait à merveille. J'ai modifié un peu mon classeur,
et il ne fonctionne plus, il bloque à "ActiveCell.Offset(-1, 0).Select"
le voici, en tout cas le début.
Dans ma deuxième macro, je rappel ma première macro, et là ça bloque.
Je comprend pas.
MERCI
Yann
-------
Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
End Sub
Sub IMPORTBAL()
rep = MsgBox("ATTENTION ! Vous allez perdre les commentaires saisis dans les
'Détails des comptes'. Etes-vous certain(e) de vouloir réinitialiser ?",
vbYesNo)
If rep = vbNo Then Exit Sub
SUPPRIMEBAL
Sheets("balance").Select
Columns("F:I").Select
Selection.NumberFormat = "#,##0"
Sheets("C").Select
Range("DETAIL101").Select
---------

10 réponses

1 2
Avatar
isabelle
bonjour Sunburn,

ça bloque sur quel ligne ? quel est le message d'erreur ?

isabelle

Bonjour,
j'ai un code VBA qui marchait à merveille. J'ai modifié un peu mon classeur,
et il ne fonctionne plus, il bloque à "ActiveCell.Offset(-1, 0).Select"
le voici, en tout cas le début.
Dans ma deuxième macro, je rappel ma première macro, et là ça bloque.
Je comprend pas.
MERCI
Yann
-------
Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
End Sub
Sub IMPORTBAL()
rep = MsgBox("ATTENTION ! Vous allez perdre les commentaires saisis dans les
'Détails des comptes'. Etes-vous certain(e) de vouloir réinitialiser ?",
vbYesNo)
If rep = vbNo Then Exit Sub
SUPPRIMEBAL
Sheets("balance").Select
Columns("F:I").Select
Selection.NumberFormat = "#,##0"
Sheets("C").Select
Range("DETAIL101").Select
---------



Avatar
Sunburn
Bonjour Isabelle,
le message est "erreur d'execution 1004", "erreur définie par l'application
ou par l'objet"
et la ligne qui est surlignée en jaune est "ActiveCell.Offset(-1,
0).Select", dans la macro "SUPPRIMEBAL".

Merci.
Yann

"isabelle" wrote:

bonjour Sunburn,

ça bloque sur quel ligne ? quel est le message d'erreur ?

isabelle

Bonjour,
j'ai un code VBA qui marchait à merveille. J'ai modifié un peu mon classeur,
et il ne fonctionne plus, il bloque à "ActiveCell.Offset(-1, 0).Select"
le voici, en tout cas le début.
Dans ma deuxième macro, je rappel ma première macro, et là ça bloque.
Je comprend pas.
MERCI
Yann
-------
Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
End Sub
Sub IMPORTBAL()
rep = MsgBox("ATTENTION ! Vous allez perdre les commentaires saisis dans les
'Détails des comptes'. Etes-vous certain(e) de vouloir réinitialiser ?",
vbYesNo)
If rep = vbNo Then Exit Sub
SUPPRIMEBAL
Sheets("balance").Select
Columns("F:I").Select
Selection.NumberFormat = "#,##0"
Sheets("C").Select
Range("DETAIL101").Select
---------






Avatar
Daniel.C
Modifie ton code comme suit; en cas d'erreur, un message apparaitra. Poste
ici le contenu du message :

Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
On Error Resume Next
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
If Err.Number <> 0 then
Msgbox ActiveCell.Address
Exit Sub
End If
Loop
End Sub

Daniel
"Sunburn" a écrit dans le message de
news:
Bonjour Isabelle,
le message est "erreur d'execution 1004", "erreur définie par
l'application
ou par l'objet"
et la ligne qui est surlignée en jaune est "ActiveCell.Offset(-1,
0).Select", dans la macro "SUPPRIMEBAL".

Merci.
Yann

"isabelle" wrote:

bonjour Sunburn,

ça bloque sur quel ligne ? quel est le message d'erreur ?

isabelle

Bonjour,
j'ai un code VBA qui marchait à merveille. J'ai modifié un peu mon
classeur,
et il ne fonctionne plus, il bloque à "ActiveCell.Offset(-1, 0).Select"
le voici, en tout cas le début.
Dans ma deuxième macro, je rappel ma première macro, et là ça bloque.
Je comprend pas.
MERCI
Yann
-------
Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
End Sub
Sub IMPORTBAL()
rep = MsgBox("ATTENTION ! Vous allez perdre les commentaires saisis
dans les
'Détails des comptes'. Etes-vous certain(e) de vouloir réinitialiser
?",
vbYesNo)
If rep = vbNo Then Exit Sub
SUPPRIMEBAL
Sheets("balance").Select
Columns("F:I").Select
Selection.NumberFormat = "#,##0"
Sheets("C").Select
Range("DETAIL101").Select
---------








Avatar
Sunburn
Daniel:
message qui apparait : $B$1

c'est quoi ?
Merci

"Daniel.C" wrote:

Modifie ton code comme suit; en cas d'erreur, un message apparaitra. Poste
ici le contenu du message :

Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
On Error Resume Next
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
If Err.Number <> 0 then
Msgbox ActiveCell.Address
Exit Sub
End If
Loop
End Sub

Daniel
"Sunburn" a écrit dans le message de
news:
Bonjour Isabelle,
le message est "erreur d'execution 1004", "erreur définie par
l'application
ou par l'objet"
et la ligne qui est surlignée en jaune est "ActiveCell.Offset(-1,
0).Select", dans la macro "SUPPRIMEBAL".

Merci.
Yann

"isabelle" wrote:

bonjour Sunburn,

ça bloque sur quel ligne ? quel est le message d'erreur ?

isabelle

Bonjour,
j'ai un code VBA qui marchait à merveille. J'ai modifié un peu mon
classeur,
et il ne fonctionne plus, il bloque à "ActiveCell.Offset(-1, 0).Select"
le voici, en tout cas le début.
Dans ma deuxième macro, je rappel ma première macro, et là ça bloque.
Je comprend pas.
MERCI
Yann
-------
Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
End Sub
Sub IMPORTBAL()
rep = MsgBox("ATTENTION ! Vous allez perdre les commentaires saisis
dans les
'Détails des comptes'. Etes-vous certain(e) de vouloir réinitialiser
?",
vbYesNo)
If rep = vbNo Then Exit Sub
SUPPRIMEBAL
Sheets("balance").Select
Columns("F:I").Select
Selection.NumberFormat = "#,##0"
Sheets("C").Select
Range("DETAIL101").Select
---------













Avatar
Daniel.C
Ton erreur provient du fait que tu cherches à sélectionner la cellule qui
est AU DESSUS de B1. Ajoute un test pour prévoir ce cas.
Daniel
"Sunburn" a écrit dans le message de
news:
Daniel:
message qui apparait : $B$1

c'est quoi ?
Merci

"Daniel.C" wrote:

Modifie ton code comme suit; en cas d'erreur, un message apparaitra.
Poste
ici le contenu du message :

Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
On Error Resume Next
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
If Err.Number <> 0 then
Msgbox ActiveCell.Address
Exit Sub
End If
Loop
End Sub

Daniel
"Sunburn" a écrit dans le message de
news:
Bonjour Isabelle,
le message est "erreur d'execution 1004", "erreur définie par
l'application
ou par l'objet"
et la ligne qui est surlignée en jaune est "ActiveCell.Offset(-1,
0).Select", dans la macro "SUPPRIMEBAL".

Merci.
Yann

"isabelle" wrote:

bonjour Sunburn,

ça bloque sur quel ligne ? quel est le message d'erreur ?

isabelle

Bonjour,
j'ai un code VBA qui marchait à merveille. J'ai modifié un peu mon
classeur,
et il ne fonctionne plus, il bloque à "ActiveCell.Offset(-1,
0).Select"
le voici, en tout cas le début.
Dans ma deuxième macro, je rappel ma première macro, et là ça
bloque.
Je comprend pas.
MERCI
Yann
-------
Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
End Sub
Sub IMPORTBAL()
rep = MsgBox("ATTENTION ! Vous allez perdre les commentaires saisis
dans les
'Détails des comptes'. Etes-vous certain(e) de vouloir réinitialiser
?",
vbYesNo)
If rep = vbNo Then Exit Sub
SUPPRIMEBAL
Sheets("balance").Select
Columns("F:I").Select
Selection.NumberFormat = "#,##0"
Sheets("C").Select
Range("DETAIL101").Select
---------















Avatar
isabelle
si tu execute la macro via un bouton mets la propriété "TakeFocusOnClick" à False

isabelle

Daniel:
message qui apparait : $B$1

c'est quoi ?
Merci

"Daniel.C" wrote:

Modifie ton code comme suit; en cas d'erreur, un message apparaitra. Poste
ici le contenu du message :

Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
On Error Resume Next
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
If Err.Number <> 0 then
Msgbox ActiveCell.Address
Exit Sub
End If
Loop
End Sub

Daniel
"Sunburn" a écrit dans le message de
news:
Bonjour Isabelle,
le message est "erreur d'execution 1004", "erreur définie par
l'application
ou par l'objet"
et la ligne qui est surlignée en jaune est "ActiveCell.Offset(-1,
0).Select", dans la macro "SUPPRIMEBAL".

Merci.
Yann

"isabelle" wrote:

bonjour Sunburn,

ça bloque sur quel ligne ? quel est le message d'erreur ?

isabelle

Bonjour,
j'ai un code VBA qui marchait à merveille. J'ai modifié un peu mon
classeur,
et il ne fonctionne plus, il bloque à "ActiveCell.Offset(-1, 0).Select"
le voici, en tout cas le début.
Dans ma deuxième macro, je rappel ma première macro, et là ça bloque.
Je comprend pas.
MERCI
Yann
-------
Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
End Sub
Sub IMPORTBAL()
rep = MsgBox("ATTENTION ! Vous allez perdre les commentaires saisis
dans les
'Détails des comptes'. Etes-vous certain(e) de vouloir réinitialiser
?",
vbYesNo)
If rep = vbNo Then Exit Sub
SUPPRIMEBAL
Sheets("balance").Select
Columns("F:I").Select
Selection.NumberFormat = "#,##0"
Sheets("C").Select
Range("DETAIL101").Select
---------













Avatar
Sunburn
Merci Daniel,
mais je ne sais pas comment faire ce test, et cette macrio fonctionne très
bien sur mon ancien ficher, donc c'est bizzare...
en fait, le but de la macro, est de supprimer toutes les lignes qui
contiennent un chiffre dans la colonne C.
Je ne sais pas comment prévoir un test pour prévoir le cas où y'a une celule
au dessus de la B1, moi j'en vois pas.

Merci

"Daniel.C" wrote:

Ton erreur provient du fait que tu cherches à sélectionner la cellule qui
est AU DESSUS de B1. Ajoute un test pour prévoir ce cas.
Daniel
"Sunburn" a écrit dans le message de
news:
Daniel:
message qui apparait : $B$1

c'est quoi ?
Merci

"Daniel.C" wrote:

Modifie ton code comme suit; en cas d'erreur, un message apparaitra.
Poste
ici le contenu du message :

Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
On Error Resume Next
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
If Err.Number <> 0 then
Msgbox ActiveCell.Address
Exit Sub
End If
Loop
End Sub

Daniel






Avatar
Sunburn
Ma macro s'execute à partir d'un menu déroulant, qui est dans la barre tout
en haut, avec les autres Menu.
Yann

"isabelle" wrote:

si tu execute la macro via un bouton mets la propriété "TakeFocusOnClick" à False

isabelle

Daniel:
message qui apparait : $B$1

c'est quoi ?
Merci

"Daniel.C" wrote:

Modifie ton code comme suit; en cas d'erreur, un message apparaitra. Poste
ici le contenu du message :

Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
On Error Resume Next
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
If Err.Number <> 0 then
Msgbox ActiveCell.Address
Exit Sub
End If
Loop
End Sub

Daniel
"Sunburn" a écrit dans le message de
news:
Bonjour Isabelle,
le message est "erreur d'execution 1004", "erreur définie par
l'application
ou par l'objet"
et la ligne qui est surlignée en jaune est "ActiveCell.Offset(-1,
0).Select", dans la macro "SUPPRIMEBAL".

Merci.
Yann

"isabelle" wrote:

bonjour Sunburn,

ça bloque sur quel ligne ? quel est le message d'erreur ?

isabelle

Bonjour,
j'ai un code VBA qui marchait à merveille. J'ai modifié un peu mon
classeur,
et il ne fonctionne plus, il bloque à "ActiveCell.Offset(-1, 0).Select"
le voici, en tout cas le début.
Dans ma deuxième macro, je rappel ma première macro, et là ça bloque.
Je comprend pas.
MERCI
Yann
-------
Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
End Sub
Sub IMPORTBAL()
rep = MsgBox("ATTENTION ! Vous allez perdre les commentaires saisis
dans les
'Détails des comptes'. Etes-vous certain(e) de vouloir réinitialiser
?",
vbYesNo)
If rep = vbNo Then Exit Sub
SUPPRIMEBAL
Sheets("balance").Select
Columns("F:I").Select
Selection.NumberFormat = "#,##0"
Sheets("C").Select
Range("DETAIL101").Select
---------
















Avatar
isabelle
c'est ok, pour ton test d'erreur,

IF ActiveCell.Address = "$B$1" Then Exit Sub

isabelle

Ma macro s'execute à partir d'un menu déroulant, qui est dans la barre tout
en haut, avec les autres Menu.
Yann

"isabelle" wrote:

si tu execute la macro via un bouton mets la propriété "TakeFocusOnClick" à False

isabelle

Daniel:
message qui apparait : $B$1

c'est quoi ?
Merci

"Daniel.C" wrote:

Modifie ton code comme suit; en cas d'erreur, un message apparaitra. Poste
ici le contenu du message :

Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
On Error Resume Next
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
If Err.Number <> 0 then
Msgbox ActiveCell.Address
Exit Sub
End If
Loop
End Sub

Daniel
"Sunburn" a écrit dans le message de
news:
Bonjour Isabelle,
le message est "erreur d'execution 1004", "erreur définie par
l'application
ou par l'objet"
et la ligne qui est surlignée en jaune est "ActiveCell.Offset(-1,
0).Select", dans la macro "SUPPRIMEBAL".

Merci.
Yann

"isabelle" wrote:

bonjour Sunburn,

ça bloque sur quel ligne ? quel est le message d'erreur ?

isabelle

Bonjour,
j'ai un code VBA qui marchait à merveille. J'ai modifié un peu mon
classeur,
et il ne fonctionne plus, il bloque à "ActiveCell.Offset(-1, 0).Select"
le voici, en tout cas le début.
Dans ma deuxième macro, je rappel ma première macro, et là ça bloque.
Je comprend pas.
MERCI
Yann
-------
Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop
End Sub
Sub IMPORTBAL()
rep = MsgBox("ATTENTION ! Vous allez perdre les commentaires saisis
dans les
'Détails des comptes'. Etes-vous certain(e) de vouloir réinitialiser
?",
vbYesNo)
If rep = vbNo Then Exit Sub
SUPPRIMEBAL
Sheets("balance").Select
Columns("F:I").Select
Selection.NumberFormat = "#,##0"
Sheets("C").Select
Range("DETAIL101").Select
---------
















Avatar
Daniel.C
Au temps pour moi, La cellule active n'est pas en colonne C. Essaie le code
suivant et regarde si la plage sélectionnée est bien la bonne :
Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
End Sub

Daniel
"Sunburn" a écrit dans le message de
news:
Merci Daniel,
mais je ne sais pas comment faire ce test, et cette macrio fonctionne très
bien sur mon ancien ficher, donc c'est bizzare...
en fait, le but de la macro, est de supprimer toutes les lignes qui
contiennent un chiffre dans la colonne C.
Je ne sais pas comment prévoir un test pour prévoir le cas où y'a une
celule
au dessus de la B1, moi j'en vois pas.

Merci

"Daniel.C" wrote:

Ton erreur provient du fait que tu cherches à sélectionner la cellule qui
est AU DESSUS de B1. Ajoute un test pour prévoir ce cas.
Daniel
"Sunburn" a écrit dans le message de
news:
Daniel:
message qui apparait : $B$1

c'est quoi ?
Merci

"Daniel.C" wrote:

Modifie ton code comme suit; en cas d'erreur, un message apparaitra.
Poste
ici le contenu du message :

Sub SUPPRIMEBAL()
Application.ScreenUpdating = False
On Error Resume Next
Sheets("C").Select
Sheets("C").Range("C65535").End(xlUp).Select
Do While ActiveCell.Address <> Range("C1").Address
If ActiveCell > 100000 And ActiveCell < 999999999 Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
If Err.Number <> 0 then
Msgbox ActiveCell.Address
Exit Sub
End If
Loop
End Sub

Daniel









1 2