Pb erreur 1004
Résolu
fab
-
HugoHerbomez Messages postés 57 Date d'inscription Statut Membre Dernière intervention -
HugoHerbomez Messages postés 57 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je rencontre ce pb et ne suis pas confirmé en vba!
Quelqu'un aurait une solution à ce problème?
J'ai un bouton avec cette macro qui me dirige vers Inputbox afin d'entrer la ligne à supprimer!
Et là : erreur d'execution '1004' : ( la methode delete de la classe range à échoué).
Je clic sur debogage et Rows(i).delete est en surbrillance jaune.
Procedure permettant la suppression
Merci par avance
Je rencontre ce pb et ne suis pas confirmé en vba!
Quelqu'un aurait une solution à ce problème?
J'ai un bouton avec cette macro qui me dirige vers Inputbox afin d'entrer la ligne à supprimer!
Et là : erreur d'execution '1004' : ( la methode delete de la classe range à échoué).
Je clic sur debogage et Rows(i).delete est en surbrillance jaune.
Procedure permettant la suppression
' d'un enregistrement d'une table à partir ' d'un numero ID Sub supprimeID() 'Declaration des variable Dim i As Integer Dim SupprimeLigne As String 'Affectation des variables SupprimeLigne = InputBox("Veuillez saisir la référence à supprimer", SUPPRESSION) 'On se positionne sur la feuille de la source de données With ThisWorkbook.Sheets("SOURCE") 'Compte le nombre de ligne de la colonne C et tu remontes d'1 ligne For i = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1 'Si correspondance entre la reference et la ligne à supprimer ALORS If Range("A" & i).Value = SupprimeLigne Then Rows(i).Delete 'On supprime la ligne entière
Merci par avance
A voir également:
- Pb erreur 1004
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
5 réponses
Bonjour,
Manque le point devant range et rows
Manque le point devant range et rows
Sub supprimeID() 'Declaration des variable Dim i As Integer Dim SupprimeLigne As String 'Affectation des variables SupprimeLigne = InputBox("Veuillez saisir la référence à supprimer", SUPPRESSION) 'On se positionne sur la feuille de la source de données With ThisWorkbook.Sheets("SOURCE") 'Compte le nombre de ligne de la colonne C et tu remontes d'1 ligne For i = .Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1 'Si correspondance entre la reference et la ligne à supprimer ALORS If .Range("A" & i).Value = SupprimeLigne Then .Rows(i).Delete End If Next i End With End Sub
Bonjour et merci pour votre réponse.
J'ai fait un copier coller du code que vous m'avez fourni.
Toujours le même problème!
auriez-vous une idée?
Merci beaucoup
J'ai fait un copier coller du code que vous m'avez fourni.
Toujours le même problème!
auriez-vous une idée?
Merci beaucoup
Bonjour fab,
As tu des restrictions, protection sur ta feuille?
Sinon tu peux essayer :
Après en commentaire tu dis que ça compte le nombre de ligne de la colonne C mais je ne vois pas où intervient la colonne :D
As tu des restrictions, protection sur ta feuille?
Sinon tu peux essayer :
.Range("A" & i).EntireRow.Delete
Après en commentaire tu dis que ça compte le nombre de ligne de la colonne C mais je ne vois pas où intervient la colonne :D
Je viens de voir que ta variable était de type String ! Tu ne peux pas demander une égalité sur deux String comme cela, il faut utiliser la fonction StrComp. (Fin je pense que tu ne peux pas haha)
Utilise ce code et arrange le pour que ça fonctionne !
Si '.Range("A" & i).Value' ne te renvoie pas une valeur de type String utilise la fonction CStr comme ceci :
Tiens moi au courant ;)
Utilise ce code et arrange le pour que ça fonctionne !
If StrComp(.Range("A" & i).Value, SupprimeLigne) = 0 Then .Range("A" & i).EntireRow.Delete 'Ou sinon tu peux utiliser si ça ne fonctionne pas '.Rows(i).Delete End If
Si '.Range("A" & i).Value' ne te renvoie pas une valeur de type String utilise la fonction CStr comme ceci :
If StrComp(CStr(.Range("A" & i).Value), SupprimeLigne) = 0 Then .Range("A" & i).EntireRow.Delete 'Ou sinon tu peux utiliser si ça ne fonctionne pas '.Rows(i).Delete End If
Tiens moi au courant ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question