Excel Erreur VBA Range objet global 1004
Résolu
PC74cook32
Messages postés
459
Statut
Membre
-
PC74cook32 Messages postés 459 Statut Membre -
PC74cook32 Messages postés 459 Statut Membre -
Bonjour,
j'ai une macro sur excel qui vérifie de la ligne E2 à E1400 si un numéro de téléphone contient les préfixes :
-Téléphone *
-Téléphone
-Mobile *
-Mobile
et les supprime. Mais j'obtient l'erreur 1004, la méthode range de l'objet global a échoué.
J'ai essayé de réduire le nombre de cellules mais cela ne marche pas mieux. L'erreur est sur la ligne
Voici le code, et merci.
j'ai une macro sur excel qui vérifie de la ligne E2 à E1400 si un numéro de téléphone contient les préfixes :
-Téléphone *
-Téléphone
-Mobile *
-Mobile
et les supprime. Mais j'obtient l'erreur 1004, la méthode range de l'objet global a échoué.
J'ai essayé de réduire le nombre de cellules mais cela ne marche pas mieux. L'erreur est sur la ligne
x = Range("e2:e1400" & Range("e65536").End(xlUp).Row).Value
Voici le code, et merci.
Sub SuprrTel()
Sheets("Liste").Select
Dim x As Variant, r As Long, c As Long
Application.ScreenUpdating = False
x = Range("e2:e1400" & Range("e65536").End(xlUp).Row).Value
For r = 1 To UBound(x, 1)
For c = 1 To UBound(x, 2)
x(r, c) = Replace(x(r, c), "Téléphone *", "")
x(r, c) = Replace(x(r, c), "Téléphone ", "")
x(r, c) = Replace(x(r, c), "Mobile *", "")
x(r, c) = Replace(x(r, c), "Mobile ", "")
Next c: Next r
Range("e2:e1400" & Range("e65536").End(xlUp).Row).Value = x
End Sub
A voir également:
- Excel Erreur VBA Range objet global 1004
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
Bonjour,
x = Range("E" & Range("E" & Rows.Count).End(xlUp).Row).Value
PC74cook32
Messages postés
459
Statut
Membre
35
Petit Ajout : sur un tableau, avec la même macro, mais avec moins de ligne remplies (700) et les mêmes paramètres (range de e2 à e800) ca marche. Sur le tableau concerné, avec les 1400 lignes remplies, si je copie la macro avec les mêmes paramètres (e2:e800), erreur de range..
Re bonjour,
Je n'ai plus l'erreur 1004 mais j'ai obtiens l'erreur d'exécution 13 : incompatibilité de type
sur la ligne
Je n'ai plus l'erreur 1004 mais j'ai obtiens l'erreur d'exécution 13 : incompatibilité de type
sur la ligne
For r = 1 To UBound(X, 1)
Re,
J'aimerais (comme le macro le faisait avant le bug) que la macro vérifie chaque cellule de la colonne E (E1, E2, E3...) et si il y a *Téléphone *", "Téléphone ", "Mobile *" ou "Mobile", que la macro les remplace par rien, c-a-d " ", donc les supprimer.
Quand le nombre de cellules remplies étaient proches de 700, cela marchait mais quand le nombre est passé a 1400, même sans changer la macro, j'obtenais l'erreur 1004.
J'aimerais (comme le macro le faisait avant le bug) que la macro vérifie chaque cellule de la colonne E (E1, E2, E3...) et si il y a *Téléphone *", "Téléphone ", "Mobile *" ou "Mobile", que la macro les remplace par rien, c-a-d " ", donc les supprimer.
Quand le nombre de cellules remplies étaient proches de 700, cela marchait mais quand le nombre est passé a 1400, même sans changer la macro, j'obtenais l'erreur 1004.
Re,
Si les cellules contiennent seulement le texte cite,
Si les cellules contiennent seulement le texte cite,
Sub SuprrTel() Dim x As Variant, r As Long, c As Long 'Application.ScreenUpdating = False With Sheets("Liste") derlig = .Range("E" & Rows.Count).End(xlUp).Row For r = 2 To derlig If .Range("E" & r) Like "Téléphone*" Then .Range("E" & r) = "" ElseIf .Range("E" & r) Like "Mobile*" Then .Range("E" & r) = "" End If Next r End With End Sub
Hélas, j'aurais du préciser, elles contiennent en plus un numéro de téléphone
Du genre : "Téléphone *022 000 000"
Au pire, ce que je fais, c'est que je copie les numéros que je veux corriger, je les colle dans mon fichier qui fonctionne (j'en prends 600 d'un coup), je corrige et je recolle dans le fichier qui fait défaut.. Ca ne corrige pas le bug mais au moins, ça ne me bloque pas..
Du genre : "Téléphone *022 000 000"
Au pire, ce que je fais, c'est que je copie les numéros que je veux corriger, je les colle dans mon fichier qui fonctionne (j'en prends 600 d'un coup), je corrige et je recolle dans le fichier qui fait défaut.. Ca ne corrige pas le bug mais au moins, ça ne me bloque pas..
Re,
ceci devrait aller
ceci devrait aller
Sub SuprrTel() Dim x As Variant, r As Range Application.ScreenUpdating = False With Sheets("Liste") Set x = .Range("E2:E" & .Range("E" & Rows.Count).End(xlUp).Row) For Each r In x If r Like "Téléphone*" Or r Like "Mobile*" Then r = Replace(r, "Téléphone *", "") r = Replace(r, "Téléphone ", "") r = Replace(r, "Mobile *", "") r = Replace(r, "Mobile ", "") End If Next r End With Application.ScreenUpdating = True End Sub