Eerreur d’exécution '1004' "la méthode 'Range' de l'objet _ Global a échoué
Résolu/Fermé
bechirar
Messages postés
3
Date d'inscription
jeudi 6 février 2020
Statut
Membre
Dernière intervention
13 février 2020
-
6 févr. 2020 à 11:32
HOMME - 9 avril 2024 à 00:16
HOMME - 9 avril 2024 à 00:16
A voir également:
- La méthode range de l'objet _global a échoué
- VBA Methode range a échouée ✓ - Forum VB / VBA
- Input signal out of range ✓ - Forum Matériel & Système
- La méthode range de l'objet worksheet a échoué ✓ - Forum VB / VBA
- Vente objet occasion entre particulier - Guide
- Dans la messagerie ci-dessous, envoyez un nouveau message à manon (manon@pixmail.org) en mettant en copie nina (nina@pixmail.org) : objet : colis bonjour, votre colis est arrivé. que répond manon ? ✓ - Forum Loisirs / Divertissements
3 réponses
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
644
6 févr. 2020 à 15:45
6 févr. 2020 à 15:45
Bonjour,
Oui en incrémentant les lettres de colonnes on tombe sur une erreur car Chr(91) qui vient après Chr(90) qui est "Z" ce n'est pas une lettre mais le caractère "[" ce qui provoque l'erreur
Donc la solution c'est d'utiliser les numéros de colonnes comme celà :
Par contre on utilise que la Feuil1 je ne sais pas si c'est volontaire.
Oui en incrémentant les lettres de colonnes on tombe sur une erreur car Chr(91) qui vient après Chr(90) qui est "Z" ce n'est pas une lettre mais le caractère "[" ce qui provoque l'erreur
Donc la solution c'est d'utiliser les numéros de colonnes comme celà :
Sub Test() Dim x As Integer Dim i As Integer Dim j As Integer Dim y As Integer Dim c As Integer x = Sheets("Feuil1").Range("A2").End(xlDown).Row y = Sheets("Feuil3").Range("A2").End(xlDown).Row Worksheets("Feuil1").Activate y = y + 2 c = 5 Dim F1 As Characters Dim F2 As Characters For j = 1 To y For i = 2 To x If Sheets("Feuil1").Cells(i, c).Value <> Sheets("Feuil1").Cells(i, c + 1).Value Then Sheets("Feuil1").Cells(i, c + 2).Value = "KO" Sheets("Feuil1").Cells(i, c + 2).Interior.Color = RGB(255, 0, 0) Else: Sheets("Feuil1").Cells(i, c + 2).Value = "OK" Sheets("Feuil1").Cells(i, c + 2).Interior.Color = RGB(0, 255, 0) End If Next i c = c + 3 Next j End Sub
Par contre on utilise que la Feuil1 je ne sais pas si c'est volontaire.
13 févr. 2020 à 09:45
En exécutant la macro j'obtiens toujours des résultats "KO" sachant que je compare deux integer, mais la première ligne de la cellule est vide, la valeur est stocké dans la deuxième ligne de la cellule, je ne sais pas si c'est à cause de ça, il m'affiche toujours "KO" (même si les deux valeurs sont égaux).
Si Oui, est-ce qu'il y a un moyen de supprimer la première ligne de chaque cellule à l'aide d'un macro ? Merci d'avance.
Modifié le 13 févr. 2020 à 11:34
Jusqu’à présent je n'ai regardé que la syntaxe de la macro.
Je n'ai pas cherché à comprendre le besoin .
Ce qui me choque c'est qu'on utilise le nombre de lignes de Feuil3 (la valeur j) alors que dans la boucle jamais on ne fait référence aux valeurs de la Feuil3.
Ce qui me semble logique c'est que l'on compare la liste de Feuil1 à la liste de Feuil3
Par exemple on s'attend à ce que le test soit :
Est-ce que ce n'est pas ça le problème ?
Cordialement,
13 févr. 2020 à 11:38
J'utilise la feuille 3 juste pour récupérer le nombre des colonnes ( vu que le nombre des colonnes dans la feuille 1 égale au nombre des requêtes Sql stockés dans la feuille 3 ).
Et finalement j'ai trouvé l'erreur, mais elle n'est pas dans la macro, merci.
Bonne journée.
Modifié le 9 avril 2024 à 00:32
BONJOUR,
mon problème est au niveau de ma commande de la validation d'enregistrer mes information lors que je valide le message affiche "la méthode 'range' de l'objet_Worksheet a échoué: voici mes syntaxe:
Private Sub CmdValider_Click()
If MsgBox("souhaitez-vous valider ces informations ?", vbQuestion + vbYesNo, "STOCK") = vbNo Then Exit Sub
'Mettre a ce niveau les controles de saisies qu'il faut
Dim i As Long
If AjoutModification = True Then
i = Derligne(FeuilDonnéesAchats.Name)
Else
i = LigneAModifier
End If
VOICI LA OU LE PROBLEME SE POSE:
FeuilDonnéesArticles.Range("A" & i).Value = Me.TxCodeArticles.Value
FeuilDonnéesArticles.Range("B" & i).Value = Me.TxLibelléArticle.Value
MsgBox "Vos informations ont été enregistrées avec succès!", vbInformation, "STOCK"
Unload Me
End Sub