Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 !

nougitch

XLDnaute Occasionnel
Bonjour,

J'ai un message overflow sur le code suivant.
Je ne comprends pas car apres lecture des messages du forum, j'ai pourtant passe mes variables en Long et toujours rien.

Auriez-vous une idee ?

Merci par avance pour votre aide.
Cdt,


Code:
Sub MyMacro()

    Dim MaxColumn, MaxRow, MaxRow2 As Long
    Dim z, y, x As Long

    'Application.ScreenUpdating = False

    Sheets("MySheet").Cells.Delete
    
    Range("A28").CurrentRegion.Copy
    Sheets("MySheet").Range("A1").PasteSpecial xlPasteAll
    
    Sheets("MySheet").Select

    MaxColumn = Range("IV2").End(xlToLeft).Column
    For z = MaxColumn To 1 Step -1
        If (Cells(1, z) <> "Reference") And (Cells(1, z) <> "Instrument type") Then
            Columns(z).Delete Shift:=xlToLeft
        End If
    Next

    MaxRow = Range("B65536").End(xlUp).Row
    For y = MaxRow To 2 Step -1
        If (Cells(y, 2) <> "Type A") And (Cells(y, 2) <> "Type B") And (Cells(y, 2) <> "Type C") Then
            Rows(y).Delete Shift:=xlUp
        End If
    Next

    MaxRow2 = Range("B65536").End(xlUp).Row
    For x = MaxRow2 To 2 Step -1
        If (Cells(x, 4) = 0) Then
            Rows(x).Delete Shift:=xlUp
        End If
    Next

    'Application.ScreenUpdating = True

End Sub
 
Re : Overflow

Bonjour Nougitch, bonjour le forum,

Si c'est un problème de variable corrige :

Code:
Dim MaxColumn, MaxRow, MaxRow2 As Long
Dim z, y, x As Long

par :
Code:
Dim MaxColumn As long, MaxRow As Long, MaxRow2 As Long
Dim z As Long, y As Long, x As long
 
Re : Overflow

bonjour

essaye comme cela

Code:
    Dim MaxColumn As Long, MaxRow As Long, MaxRow2 As Long
    Dim z As Long, y As Long, x As Long

sinon il serait interressant de préciser sur quelle ligne il plante

oups : Bonjour robert, désolé pour la collision
 
Re : Overflow

Merci pour vos reponses.
Cela ne fonctionne otujours pas.

Le probleme intervient pour la troisieme boucle.
J'ai ajoute un Msgbox et il me trouve bien les 152 lignes que je dois avoir.

Code:
    MaxRow2 = Range("B65536").End(xlUp).Row
    MsgBox MaxRow2
    For x = MaxRow2 To 2 Step -1
        If (Cells(x, 4) = 0) Then
            Rows(x).Delete Shift:=xlUp
        End If
    Next

Ce qui est etrange, c'est que j'utilise ce fichier sur un lecteur reseau. Quand je l'utilise sur mon disque local, je n'ai pas le probleme.

Merci beaucoup pour votre aide !
Cdt,
 
Re : Overflow

Bon, et bien j'ai remplace la ligne suivante :
Code:
If (Cells(x, 4) = 0) then
Par la suivante :
Code:
If IsEmpty(Cells(x, 4)) = True Then
Et cela fonctionne.
Je n'ai pas torp d'explications.
Merci pour votre aide.
A plus tard.
 
- 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
5
Affichages
914
Réponses
15
Affichages
788
Réponses
4
Affichages
735
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…