Eerreur d’exécution '1004' "la méthode 'Range' de l'objet _ Global a échoué
Résolu bechirar Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
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é
- Forum VB / VBA
- Forum Matériel & Système
- Vente entre particulier objet - Guide
- Forum VB / VBA
- Forum VB / VBA
3 réponses
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.
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.
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,
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.
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