Probléme avec derlgn VBA

Fermé
GillesBIGBOY - 28 sept. 2017 à 14:24
 GillesBIGBOY - 28 sept. 2017 à 16:38
Bonjour,

j'ai devellopé une macro avec un ami, qui on fonction d'un tableau virtuel pris d'un autre classeur va créer deux colonnes et appliquer deux formules.
Mon probléme se situe au niveau de :

derLgn = Range("A1").End(xlDown).Row

arriver a ce stade, il y a un message de blocage
eurreur d'exécution "6" dépassement de capacité.

Comment est-ce que je pourais arranger ça ?

Sub Macro1()
'
' Macro pour la création de 2 colonnes
'

Dim tabNatComp As Variant
Dim shA As Worksheet 'Feuille A
Dim wB As Workbook 'Classeur B
Dim derLgn As Integer

Set wB = Workbooks.Open(Filename:="
C:\Users\gboubou\Desktop\Gilles-aut\BISCUIT.xlsm
")
Set shA = wB.Sheets("Base compta")
tabNatComp = shA.Range("A1").CurrentRegion
wB.Close False ' ferme sans sauvegarder
Set wB = Nothing
Set shA = Nothing


Columns("C:C").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("C1") = "Catégorie"
Columns("D:D").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("D1") = "Sous Catégorie"

derLgn = Range("A1").End(xlDown).Row

For i = 2 To derLgn
For j = LBound(tabNatComp) To UBound(tabNatComp)
If tabNatComp(j, 1) = Cells(i, 2) Then
Cells(i, 3) = tabNatComp(j, 3)
Cells(i, 4) = tabNatComp(j, 4)
Exit For
End If
Next j
Next i

End Sub

2 réponses

ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
28 sept. 2017 à 14:33
Bonjour

Si tu veux la dernière ligne non vide de la colonne A
Range("A" & Rows.Count).End(xlDown).Row

Cdlmnt
0
GillesBIGBOY
28 sept. 2017 à 14:55
Merci pour ta réponse
mais je crois mon probléme doit être ailleurs dans la macro, car j'ai toujours ce message de dépassement de capacité.
0
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704 > GillesBIGBOY
Modifié le 28 sept. 2017 à 16:07
Bonjour,
derLgn = Range("A1").End(xlDown).Row

donne la derniere ligne de la colonne si celle si est vide, donc largement supérieur a un Integer

ci dessous, derniere ligne non vide colonne A, =1 si colonne est vide
derLgn= Range("A" & Rows.Count).End(xlUp).Row
0
marc > GillesBIGBOY
28 sept. 2017 à 16:13
 
Bonjour GillesBIGBOY,

Ton problème de dépassement de capacité est dû au fait
que la variable derLgn est déclarée As Integer =>

Dim derLgn As Long

Cordialement
 
0
GillesBIGBOY > marc
28 sept. 2017 à 16:38
BIEN VUE marc!!!
C'EST BON maintenant
Merci pour toutes vos réponses

marc; ccm81; f894009
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
28 sept. 2017 à 16:04
mais je crois mon probléme doit être ailleurs dans la macro, car j'ai toujours ce message de dépassement de capacité.
toujours sur la même ligne ?
0