For each to cell in range

Le
Christian
Bonjour à tous et toutes
J'utilise ce bout de code en début de procédure
For Each cell In Range("sp_B6")
If cell.Value = [nr] Then Exit Sub
Next
pour vérifier si doublon il y a dans la BD.
Cela fonctionne très bien dès qu'il y a au moins 1 référence dans la BD.
Lors d'une nouvelle BD, j'obtiens le message d'erreur suivant:
Erreur d'exécution '1004':
La méthode 'Range' de l'objet '_Global' a échoué.
Normal, il n'y a encore aucune référence dans la BD.
Que devrais-je ajouter ou modifier pour obtenir le résultat escompté,
à savoir l'exécution complète de la macro.
--
En vous remerciant d'avance pour vos conseils.
Cordialement
Christian
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sitting Hoax
Le #4464021
Bonjour,
On Error Resume Next
Amicalement
Siesting Haox
"Christian" news:
Bonjour à tous et toutes
J'utilise ce bout de code en début de procédure
For Each cell In Range("sp_B6")
If cell.Value = [nr] Then Exit Sub
Next
pour vérifier si doublon il y a dans la BD.
Cela fonctionne très bien dès qu'il y a au moins 1 référence dans la BD.
Lors d'une nouvelle BD, j'obtiens le message d'erreur suivant:
Erreur d'exécution '1004':
La méthode 'Range' de l'objet '_Global' a échoué.
Normal, il n'y a encore aucune référence dans la BD.
Que devrais-je ajouter ou modifier pour obtenir le résultat escompté,
à savoir l'exécution complète de la macro.
--
En vous remerciant d'avance pour vos conseils.
Cordialement
Christian


JLuc
Le #4463991
*Bonjour Christian*,
If Range("sp_B6").Count > 0 Then
For Each...
...
Next
End If

Bonjour à tous et toutes
J'utilise ce bout de code en début de procédure
For Each cell In Range("sp_B6")
If cell.Value = [nr] Then Exit Sub
Next
pour vérifier si doublon il y a dans la BD.
Cela fonctionne très bien dès qu'il y a au moins 1 référence dans la BD.
Lors d'une nouvelle BD, j'obtiens le message d'erreur suivant:
Erreur d'exécution '1004':
La méthode 'Range' de l'objet '_Global' a échoué.
Normal, il n'y a encore aucune référence dans la BD.
Que devrais-je ajouter ou modifier pour obtenir le résultat escompté,
à savoir l'exécution complète de la macro.


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Christian
Le #4463931
Bonjour JLuc
En ayant ceci comme début de procédure,
If Range("sp_B6").Count > 0 Then
For Each cell In Range("sp_B6")
If cell.Value = [nr] Then Exit Sub
Next
J'obtiens le message d'erreur suivant
"La méthode 'Range' de l'objet '_Global' a échoué"
--
Merci
Christian



*Bonjour Christian*,
If Range("sp_B6").Count > 0 Then
For Each...
...
Next
End If


Christian
Le #4463921
Bonjour Sitting Hoax
Merci de m'avoir lu et répondu si vite.
Une petite question, ou dois-je placer ce bout de code.
J'ai essayé différents placement, mais je reçois toujours un message d'erreur.
--
Merci
Christian



Bonjour,
On Error Resume Next
Amicalement
Siesting Haox
"Christian" news:
Bonjour à tous et toutes
J'utilise ce bout de code en début de procédure
For Each cell In Range("sp_B6")
If cell.Value = [nr] Then Exit Sub
Next
pour vérifier si doublon il y a dans la BD.
Cela fonctionne très bien dès qu'il y a au moins 1 référence dans la BD.
Lors d'une nouvelle BD, j'obtiens le message d'erreur suivant:
Erreur d'exécution '1004':
La méthode 'Range' de l'objet '_Global' a échoué.
Normal, il n'y a encore aucune référence dans la BD.
Que devrais-je ajouter ou modifier pour obtenir le résultat escompté,
à savoir l'exécution complète de la macro.
--
En vous remerciant d'avance pour vos conseils.
Cordialement
Christian







JLuc
Le #4463901
*Bonjour Christian*,
Il est vrai que mon test ne sert à rien !
Si tu as créé le nom "sp_B6", tu aura au moins une cellule, donc tu
entre dans la boucle :/

Bonjour JLuc
En ayant ceci comme début de procédure,
If Range("sp_B6").Count > 0 Then
For Each cell In Range("sp_B6")
If cell.Value = [nr] Then Exit Sub
Next
J'obtiens le message d'erreur suivant
"La méthode 'Range' de l'objet '_Global' a échoué"


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

JLuc
Le #4463881
*Bonjour Christian*,
Essaie comme çà :

Sub test2()
Dim Flag As Boolean
Flag = False
For Each nom In ActiveWorkbook.Names
If nom.Name = "sp_B6" Then Flag = True
Next
If Flag Then
For Each cell In Range("sp_B6")
If cell.Value = [nr] Then Exit Sub
Next
End If
End Sub



Bonjour JLuc
En ayant ceci comme début de procédure,
If Range("sp_B6").Count > 0 Then
For Each cell In Range("sp_B6")
If cell.Value = [nr] Then Exit Sub
Next
J'obtiens le message d'erreur suivant
"La méthode 'Range' de l'objet '_Global' a échoué"


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Sitting Hoax
Le #4463861
Rebonjour,
avant la procédure

On Error Resume Next
For Each cell In Range("sp_B6")
If cell.Value = [nr] Then Exit Sub
Next

cordialement
Siesting Hoax
"Christian" news:
Bonjour Sitting Hoax
Merci de m'avoir lu et répondu si vite.
Une petite question, ou dois-je placer ce bout de code.
J'ai essayé différents placement, mais je reçois toujours un message
d'erreur.
--
Merci
Christian



Bonjour,
On Error Resume Next
Amicalement
Siesting Haox
"Christian" de
news:
Bonjour à tous et toutes
J'utilise ce bout de code en début de procédure
For Each cell In Range("sp_B6")
If cell.Value = [nr] Then Exit Sub
Next
pour vérifier si doublon il y a dans la BD.
Cela fonctionne très bien dès qu'il y a au moins 1 référence dans la
BD.
Lors d'une nouvelle BD, j'obtiens le message d'erreur suivant:
Erreur d'exécution '1004':
La méthode 'Range' de l'objet '_Global' a échoué.
Normal, il n'y a encore aucune référence dans la BD.
Que devrais-je ajouter ou modifier pour obtenir le résultat escompté,
à savoir l'exécution complète de la macro.
--
En vous remerciant d'avance pour vos conseils.
Cordialement
Christian









MichDenis
Le #4463851
Ta macro doit être dans un module feuille autre que la feuille
où l'action se déroule... c'est ce qui génère ton erreur....

Place ta macro dans un module standard et cela devrait rouler !
MichDenis
Le #4463841
Et si tu veux maintenir l'endroit où est situé le code, emploie ceci comme syntaxe

With Worksheets("NomDeLaFeuille")
For Each cell In .Range("Sp_B6")
If cell.Value = .[nr] Then Exit Sub
Next
End With



"Christian"
Bonjour à tous et toutes
J'utilise ce bout de code en début de procédure
For Each cell In Range("sp_B6")
If cell.Value = [nr] Then Exit Sub
Next
pour vérifier si doublon il y a dans la BD.
Cela fonctionne très bien dès qu'il y a au moins 1 référence dans la BD.
Lors d'une nouvelle BD, j'obtiens le message d'erreur suivant:
Erreur d'exécution '1004':
La méthode 'Range' de l'objet '_Global' a échoué.
Normal, il n'y a encore aucune référence dans la BD.
Que devrais-je ajouter ou modifier pour obtenir le résultat escompté,
à savoir l'exécution complète de la macro.
--
En vous remerciant d'avance pour vos conseils.
Cordialement
Christian
Christian
Le #4463561
Bonjour JLuc
Merci pour ta solution.
Cordialement
Christian



*Bonjour Christian*,
Essaie comme çà :

Sub test2()
Dim Flag As Boolean
Flag = False
For Each nom In ActiveWorkbook.Names
If nom.Name = "sp_B6" Then Flag = True
Next
If Flag Then
For Each cell In Range("sp_B6")
If cell.Value = [nr] Then Exit Sub
Next
End If
End Sub



Bonjour JLuc
En ayant ceci comme début de procédure,
If Range("sp_B6").Count > 0 Then
For Each cell In Range("sp_B6")
If cell.Value = [nr] Then Exit Sub
Next
J'obtiens le message d'erreur suivant
"La méthode 'Range' de l'objet '_Global' a échoué"


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O






Publicité
Poster une réponse
Anonyme