Erreur d'exécution 6 Dépassement de capacité
Résolu
MMAGNIN
Messages postés
8
Statut
Membre
-
Maurice -
Maurice -
Bonsoir à tous,
Après avoir tapé la macro suivante :
Sub test()
Dim i As Integer
i = 1
Dim a As Integer
a = 1
Dim b As Integer
b = 1
While i <= 40
If Sheets("Feuil1").Range("E" & a).Value <> "" Then
Sheets("Feuil2").Range("A" & b).Value = Sheets("Feuil1").Range("A" & a).Value
Sheets("Feuil2").Range("B" & b).Value = Sheets("Feuil1").Range("B" & a).Value
Sheets("Feuil2").Range("C" & b).Value = Sheets("Feuil1").Range("C" & a).Value
Sheets("Feuil2").Range("D" & b).Value = Sheets("Feuil1").Range("D" & a).Value
i = i + 1
b = b + 1
End If
a = a + 1
Wend
End Sub
J'ai une erreur d'exécution 6 '' Dépassement de capacité " qui s'affiche lors de lancement de la macro, après le débogage l'erreur se trouve dans la ligne a = a +1
Pour information j'ai essayé la fonction Dim As Long pour toutes les variables et ça ne marche pas non plus.
Donc pour l'instant je suis bloqué.
Merci de votre aide.
Cordialement,
Après avoir tapé la macro suivante :
Sub test()
Dim i As Integer
i = 1
Dim a As Integer
a = 1
Dim b As Integer
b = 1
While i <= 40
If Sheets("Feuil1").Range("E" & a).Value <> "" Then
Sheets("Feuil2").Range("A" & b).Value = Sheets("Feuil1").Range("A" & a).Value
Sheets("Feuil2").Range("B" & b).Value = Sheets("Feuil1").Range("B" & a).Value
Sheets("Feuil2").Range("C" & b).Value = Sheets("Feuil1").Range("C" & a).Value
Sheets("Feuil2").Range("D" & b).Value = Sheets("Feuil1").Range("D" & a).Value
i = i + 1
b = b + 1
End If
a = a + 1
Wend
End Sub
J'ai une erreur d'exécution 6 '' Dépassement de capacité " qui s'affiche lors de lancement de la macro, après le débogage l'erreur se trouve dans la ligne a = a +1
Pour information j'ai essayé la fonction Dim As Long pour toutes les variables et ça ne marche pas non plus.
Donc pour l'instant je suis bloqué.
Merci de votre aide.
Cordialement,
A voir également:
- Erreur d'execution 6 dépassement de capacité
- Nero 6 - Télécharger - Gravure
- Belote a 6 - Forum Graphisme
- Erreur 3005 france tv - Forum TV & Vidéo
- Le logiciel amd a détecté un dépassement de délai du pilote - Forum Carte graphique
- Gta 6 trailer 2 - Guide
9 réponses
Salut le Forum
Un test sur le nombre max de lignes (Pour a et b)
Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
« Si le déboguage est l'art d'enlever les bogues, alors la programmation doit être l'art de les créer. »
Un test sur le nombre max de lignes (Pour a et b)
If a > 1048576 Then Exit Sub
Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
« Si le déboguage est l'art d'enlever les bogues, alors la programmation doit être l'art de les créer. »
Bonjour à tous,
Tu es limité à 256, met As Long.
eric
Dim a As Integer
Tu es limité à 256, met As Long.
eric
Bonsoir Eric,
Après remplacement de As Integer par As Long
La macro m'affiche ''erreur d'exécution 1004''
Erreur définie par l'application ou par l'objet
L'erreur est dans la ligne suivante :
If Sheets("Feuil1").Range("E" & a).Value <> "" Then
Pour info je suis un débutant
Merci d'avance de votre retour,
Après remplacement de As Integer par As Long
La macro m'affiche ''erreur d'exécution 1004''
Erreur définie par l'application ou par l'objet
L'erreur est dans la ligne suivante :
If Sheets("Feuil1").Range("E" & a).Value <> "" Then
Pour info je suis un débutant
Merci d'avance de votre retour,
Bonjour à tous
tu implémente "i" que lorsqu'il y a qqchose dans la colonne E
donc quand tu dépasses la dernière ligne de E ta boucle tourne sur elle m^me ("i" ne s'implémente plus puisqu'inséré dans le "if")jusqu'à ce que "a" dépasse la capacité d'un type "long"
tu implémente "i" que lorsqu'il y a qqchose dans la colonne E
donc quand tu dépasses la dernière ligne de E ta boucle tourne sur elle m^me ("i" ne s'implémente plus puisqu'inséré dans le "if")jusqu'à ce que "a" dépasse la capacité d'un type "long"
Salut michel,
Pour corriger le code je dois faire comment SVP ?
Je suis un novice
Merci d'avance de ta réponse.
Pour corriger le code je dois faire comment SVP ?
Je suis un novice
Merci d'avance de ta réponse.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Je pense a un truc comme ca
A+
Maurice
Je pense a un truc comme ca
Sub Test()
Dim L As Long
Dim B As Long
B = 1
Application.ScreenUpdating = False
DernLigne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
For L = 1 To DernLigne
If Range("E" & L).Value > 0 Then
Range("A" & L & ":D" & L).Copy
Sheets("Feuil2").Range("A" & B).PasteSpecial xlPasteValues
B = B + 1
End If
Next
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub
A+
Maurice
Salut Maurice,
Tout d'abord merci pour ta réponse
J'ai essayé ton code, il marche sans problème
mais le souci c'est que il prend toutes les lignes de la feuille1 et il les colle dans la feuille2. Or moi je voulais qu'il copie juste 40 lignes de la feuille1, parce que dans la feuille2 je suis limité à 40 lignes.
Peux-tu m'apporter cette modification STP, j'en serai vraiment reconnaissant
D'avance merci,
Tout d'abord merci pour ta réponse
J'ai essayé ton code, il marche sans problème
mais le souci c'est que il prend toutes les lignes de la feuille1 et il les colle dans la feuille2. Or moi je voulais qu'il copie juste 40 lignes de la feuille1, parce que dans la feuille2 je suis limité à 40 lignes.
Peux-tu m'apporter cette modification STP, j'en serai vraiment reconnaissant
D'avance merci,
quant je mets :
DernLigne = 40
For L = 1 To 40
Il me prends 40 lignes de la feuille1 et il les copie dans la feuille2, mais pas que les lignes avec la cellule E pleine, il prends les deux cas (cellule E pleine et cellule E vide). moi je veux qu'il me prenne que les lignes là où la cellule E est pleine (une valeur).
je m'excuse pour le dérangement.
DernLigne = 40
For L = 1 To 40
Il me prends 40 lignes de la feuille1 et il les copie dans la feuille2, mais pas que les lignes avec la cellule E pleine, il prends les deux cas (cellule E pleine et cellule E vide). moi je veux qu'il me prenne que les lignes là où la cellule E est pleine (une valeur).
je m'excuse pour le dérangement.
re
je pense que tu maitise pas du tout les macro
regarde bien
A+
Maurice
je pense que tu maitise pas du tout les macro
regarde bien
Sub Test()
Dim DernLigne As Long
Dim L As Long
Dim B As Long
B = 1
Application.ScreenUpdating = False
Feuil2.Cells.ClearContents
'DernLigne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
DernLigne = 40
For L = 1 To DernLigne
If Range("E" & L).Value > 0 Then
Range("A" & L & ":E" & L).Copy
Feuil2.Range("A" & B).PasteSpecial xlPasteValues
B = B + 1
' If B > 40 Then Exit For
End If
Next
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub
A+
Maurice
re
et pour copier 40 Ligne sur la feuille2
A+
Bon je vais manger
Maurice
et pour copier 40 Ligne sur la feuille2
Sub Test()
Dim DernLigne As Long
Dim L As Long
Dim B As Long
B = 1
Application.ScreenUpdating = False
Feuil2.Cells.ClearContents
DernLigne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
For L = 1 To DernLigne
If Range("E" & L).Value > 0 Then
Range("A" & L & ":E" & L).Copy
Feuil2.Range("A" & B).PasteSpecial xlPasteValues
B = B + 1
If B > 40 Then Exit For
End If
Next
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub
A+
Bon je vais manger
Maurice
Et tu veux faire quoi avec ton code . . .
Mytå