Pb erreur 1004
Résolu
fab
-
HugoHerbomez Messages postés 59 Statut Membre -
HugoHerbomez Messages postés 59 Statut Membre -
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
5 réponses
-
Bonjour,
Manque le point devant range et rowsSub 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 -
Bonjour fab,
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 !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 -
Parfait,
Mille merci ça à marché avec (.Range("A" & i).EntireRow.Delete)
Le Top du Top
Merci beaucoup;)