Probléme avec derlgn VBA
GillesBIGBOY
-
GillesBIGBOY -
GillesBIGBOY -
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:="
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
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
A voir également:
- Probléme avec derlgn VBA
- Excel compter cellule couleur sans vba - Guide
- Dépassement de capacité vba ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
- Find vba - Astuces et Solutions
- Incompatibilité de type vba ✓ - Forum VB / VBA
mais je crois mon probléme doit être ailleurs dans la macro, car j'ai toujours ce message de dépassement de capacité.
derLgn = Range("A1").End(xlDown).Rowdonne 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).RowBonjour 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
C'EST BON maintenant
Merci pour toutes vos réponses
marc; ccm81; f894009