Dépassement de capacité

  • Initiateur de la discussion Initiateur de la discussion Sun
  • 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 !

Sun

XLDnaute Nouveau
Bonsoir,

je débute en VBA et j'aimerais faire une macro qui supprime des lignes automatiquement
j'ai 2 listes, que je compare et si la valeur d'une cellule de la colonne A est identique à la valeur de la cellule de la colonne B alors la ligne de la colonne A correspondante est supprimée et on passe à la ligne suivante, le code semble bon, or quand je l'exécute il m'indique dépassement de capacité

je vous joins le code et un fichier test

Sub supp_fich()

Dim ligne1 As Integer
Dim ligne2 As Integer


ligne1 = 1
ligne2 = 1


Do Until Range("B" & ligne2).Value = ""

While Range("A" & ligne1).Value <> Range("B" & ligne2).Value




If Range("A" & ligne1).Value = Range("B" & ligne2).Value Then

Range("A" & ligne1).EntireRow.Delete

'on change de cellule de comparaison
'si la valeur de la ligne1 colone1 = la valeur de la ligne2 colone2
'supprime la ligne


Else

If Range("A" & ligne1).Value <> Range("B" & ligne2).Value Then

ligne1 = ligne1 + 1
'si la ligne1 a été supprimer on saute à la suivante



End If
End If


Wend


ligne2 = ligne2 + 1


Loop

MsgBox "La suppression des fichiers est terminée"





End Sub

Si l'un d'entre vous peut m'aider je suis tout ouïe
 

Pièces jointes

Dernière édition:
Re : Dépassement de capacité

Bonjour Sun,

lors d'une suppression de ligne par macro il est toujours préférable de faire une boucle remontante
Code:
Application.ScreenUpdating = False
For i = Range("A65535").End(xlUp).Row To 1 Step -1
For j = Range("B65535").End(xlUp).Row To 1 Step -1
If Cells(i, 1).Value = Cells(j, 2).Value Then Rows(i).Delete
Next j
Next i
Application.ScreenUpdating = True
ton fichier en retour

à+
Philippe
 

Pièces jointes

Re : Dépassement de capacité

Bonjour à tous
Je suis d'accord avec phlaurent55 (que je salue).

De plus je remarque que vous déclarez vos pointeurs de ligne comme entiers (As Integer). Vous vous limitez ainsi à 32000 lignes et des poussières. Il vaut mieux déclarer ces pointeurs comme entiers longs (As Long) : vos 65535 lignes potentielles seront ainsi prises en compte.​

P.s. : Ne disposant que d'Excel2003, je n'ai pas ouvert votre classeur. Je ne sais donc pas s'il existe un problème d'une autre nature.


ROGER2327
#5281


Samedi 14 Merdre 138 (Saint Sphincter, profès - fête Suprême Quarte)
12 Prairial An CCXIX, 6,8103h - bétoine
2011-W22-2T16:20:41Z
 
Dernière édition:
Re : Dépassement de capacité

Le code fonctionne parfaitement,
merci Phlaurent55 ainsi que Roger2327 pour vous être penchés sur mon soucis.
J'ai le .value prend même en compte les lettres 🙂
 
Dernière édition:
- 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

Discussions similaires

Réponses
1
Affichages
180
Réponses
4
Affichages
180
Réponses
2
Affichages
154
Réponses
3
Affichages
195
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
482
Réponses
8
Affichages
233
Réponses
2
Affichages
203
Retour