Erreur 1004 lors de suppression de lignes

  • Initiateur de la discussion Initiateur de la discussion Yul80520
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Y

Yul80520

Guest
bonjour,

je souhaite supprimer les lignes comportant des cellules vides dans une colonne.


Range("P2😛96").xlCellTypeBlanks.EntireRow.Delete >> 'Renvoi l'erreur 1004 dans VB

J'ai réussi à réaliser cela sur une des colonnes mais pas sur celle qui m'intéresse.

Range("B2:B96").xlCellTypeBlanks.EntireRow.Delete >> Fonctionne correctement

Pouvez-vous me dire d'ou viens le problème ?

Merci

Mon fichier excel me sert à faire un classement automatique.
Je suis arrivé à un classement partiel pour l'instant car des conditions de tri supplémentaires sont maintenant éxigées.
 
Re : Erreur 1004 lors de suppression de lignes

Voici une partie de ma macro:



Sub classement()

'nettoyage de la feuille classement

Sheets("Classement").Select
Rows("2:148").Select
Selection.Delete Shift:=xlUp

'copier les noms dans la feuille de classement final

Sheets("TOTAL FINAL").Range("B2:B96").Copy
Sheets("Classement").Range("B2").PasteSpecial Paste:=xlPasteValues

'copier les colonnes de classement de chaque journée de classement final

Sheets("S3A1").Range("E8:E96").Copy
Sheets("Classement").Range("F2").PasteSpecial Paste:=xlPasteValues

Sheets("S3A2").Range("E8:E96").Copy
Sheets("Classement").Range("G2").PasteSpecial Paste:=xlPasteValues

Sheets("S3A3").Range("E8:E96").Copy
Sheets("Classement").Range("H2").PasteSpecial Paste:=xlPasteValues

Sheets("S3A4").Range("E8:E96").Copy
Sheets("Classement").Range("I2").PasteSpecial Paste:=xlPasteValues

Sheets("S3A5").Range("E8:E96").Copy
Sheets("Classement").Range("J2").PasteSpecial Paste:=xlPasteValues

Sheets("S3A6").Range("E8:E96").Copy
Sheets("Classement").Range("K2").PasteSpecial Paste:=xlPasteValues

Sheets("S3A7").Range("E8:E96").Copy
Sheets("Classement").Range("L2").PasteSpecial Paste:=xlPasteValues

Sheets("S3A8").Range("E8:E96").Copy
Sheets("Classement").Range("M2").PasteSpecial Paste:=xlPasteValues

Sheets("S3A9").Range("E8:E96").Copy
Sheets("Classement").Range("N2").PasteSpecial Paste:=xlPasteValues

Sheets("S3A10").Range("E8:E96").Copy
Sheets("Classement").Range("O2").PasteSpecial Paste:=xlPasteValues

Sheets("TOTAL FINAL").Range("P2😛96").Copy
Sheets("TOTAL FINAL").Range("Q2").PasteSpecial Paste:=xlPasteValues

Sheets("TOTAL FINAL").Range("Q2:Q96").Copy
Sheets("Classement").Range("P2").PasteSpecial Paste:=xlPasteValues

' supprimer les lignes entières ne comportant pas de Résultats

Range("P2😛96").xlCellTypeBlanks.EntireRow.Delete (>>> Bugg Erreur 1004 dans VB)

'copier les résultats dans la feuille de classement final

Sheets("TOTAL FINAL").Range("N2:N96").Copy
Sheets("Classement").Range("C2:C96").PasteSpecial Paste:=xlPasteValues


'copier les points de bonus dans la feuille de classement final

Sheets("TOTAL FINAL").Range("M2:M96").Copy
Sheets("Classement").Range("E2:E96").PasteSpecial Paste:=xlPasteValues


'pour une matrice des lignes 2 à 112
'avec en colonne A un index des joueurs,
'en colonne B leur nom et
'en colonne C le rang que l'on va remplir automatiquement

'classer dans l'ordre alphabétique



'classer selon le score

Rows("2:96").Select
Selection.Sort Key1:=Range("C2"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal


' Mettre 1 au rang du premier en donnant comme rang le N° de ligne moins 1

Range("D2").Select
ActiveCell.FormulaR1C1 = "=ROW(RC[-1])-1"

' Au suivant mettre son N° de ligne -1 s'il est différent du précédent,
'sinon mettre comme le précédent

Range("D3").Select
ActiveCell.FormulaR1C1 = "=+IF(RC[-1]=R[-1]C[-1],R[-1]C,ROW(RC[-1])-1)"

'copier cette formule dans toute lma colonne score de la matrice

Range("D3").Select
Selection.AutoFill Destination:=Range("D3😀96"), Type:=xlFillDefault

'Copier la colonne des scores et la coller en valeur (collage spécial valeur)

Range("D2😀96").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'retrier les lignes en fonction de l'index des joueurs mais ce pourrait être par ordre alphabétique par exemple

Rows("2:96").Select
Application.CutCopyMode = False
Selection.Sort Key1:=Range("D3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("D3").Select

Range("D2😀96").Select
Selection.Copy
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("D2😀96").Select
Selection.ClearContents



' supprimer les lignes entières ne comportant pas de Noms

Range("B2:B96").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
 
Re : Erreur 1004 lors de suppression de lignes

Bonjour,

Je n'ai pas de réponse pour cette erreur mais pourquoi ne pas utiliser une macro du type :

Code:
Dim i As Integer
For i = 1 To 15
    If IsEmpty(Cells(i, 1)) Then
        Cells(i, 1).EntireRow.Delete
    End If
Next i

En adaptant bien sûr.
 
Re : Erreur 1004 lors de suppression de lignes

En fait, j'ai l'impression que les colonnes n'ayant aucun liens avec des formules ne posent pas de problème. Mais celle qui m'intéresse est une copie des valeurs d'une autre colonne dans la quelle je fait un calcul. Une piste ?
 
Re : Erreur 1004 lors de suppression de lignes

Re

Peux-tu essayer cette simplification de ton code

et me dire si c'est équivalent à une partie de ton code

Code:
Sub classement()
Dim i As Long
'nettoyage de la feuille classement
Sheets("Classement").Rows("2:148").Delete Shift:=xlUp
'copier les noms dans la feuille de classement final
Sheets("Classement").Range("B2:B96").Value = _
Sheets("TOTAL FINAL").Range("B2:B96").Value
For i = 1 To 10
Sheets("Classement").Cells(2, 5 + i).Resize(89).Value = Sheets(CStr("S3A" & i)).Range("E8").Resize(89).Value
Next
Sheets("TOTAL FINAL").Range("Q2:Q96").Value = _
    Sheets("TOTAL FINAL").Range("P2:P96").Value
Sheets("TOTAL FINAL").Range("P2:P96").Value = _
    Sheets("TOTAL FINAL").Range("Q2:Q96").Value
'copier les résultats dans la feuille de classement final
Sheets("Classement").Range("C2:C96").Value = _
Sheets("TOTAL FINAL").Range("N2:N96").Value
'copier les points de bonus dans la feuille de classement final
Sheets("Classement").Range("E2:E96").Value = _
Sheets("TOTAL FINAL").Range("M2:M96").Value
End Sub
 
Re : Erreur 1004 lors de suppression de lignes

Bonjour

Fais une version light de ton fichier avec :
le nombre de feuilles minimun

  • 50 lignes seulement, pas de couleurs de fond dans les cellules
  • pas d'images, pas de contrôles
  • pas d'image d'arrière-plan
  • des données fictives
  • le code VBA complet par contre

Ensuite zippes cette version light et poste la sur le forum.

Sinon si la taille dépasse encore 48ko, utilises un hébergeur online gratuit.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

B
Réponses
17
Affichages
3 K
benoitoleron
B
A
Réponses
4
Affichages
734
Aurel59
A
Y
Réponses
0
Affichages
2 K
Y
Retour