Remplir une nouvelle cellule en bas d'in tableau
Bonjour à tous
Je suis en train de tourner bourrique !!!
J'ai créé un onglet Tables sur lequel j'ai deux tableaux( 1col chacun) déclarés et nommés séparés par une colonne.
Avec une procédure Userform je peux rajouter une cellule au premier tableau sans pb, mais lorsque je reproduit la même procédure sur le deuxième tableau je me fais jeter systématiquement et excel redémarre sans que j'ai eu accès au débogueur....
La formulation utilisée
Sheets("Tables").Cells(Vlf + 1, 4).Value = NMag
Si je mets formula c'est pareil ....
J'ai déja eu ce pb en voulant rajouter manuellement une colonne a un tableau au moment de la saisie de l'entête, bug et redémarrage....
Faut il mettre chacun des tableaux sur une feuille distincte ?
Ya t il une formule consacrée
Je suis sur office 365....
Quelqu'un a t il subi ce genre d'avanies ?
Merci d'avance
Cordialement
FINDRH
Bonjour,
Un petit fichier ou la copie de la procédure qui pose souci ?
CDlt.
Bonjour Jean Eric
Merci pour ton interet à la question
cellle qui marche:
Private Sub Val_Click()
If CNew <> "" Then
NCat = CNew
'Vérif existence Catégorie
Table.Select ' avant saisie
Vlf = Range("A1").End(xlDown).Row
Set rgfound = Range(Cells(1, 1), Cells(Vlf, 1)).Find(NCat, LookIn:=xlValues)
If rgfound Is Nothing Then 'n'existe pas
' rajoute catégorie
Cells(Vlf + 1, 1).Value = Application.Proper(NCat)
'Trie
Worksheets("Tables").Sort.SortFields.Clear
Range("A1:A" & Vlf).Sort Key1:=Range("A1"), Header:=xlYes
'retourne sur userform appelant ou ferme
Unload SaisCat
Select Case Vmac1
Case 1 '(retour saisie article) '
SaisArt.Show
'renseigner mytable
SaisArt.ListCat.Clear
Set myTabCat = Sheets("Tables").ListObjects("TabCat")
myArrayCat = myTabCat.DataBodyRange
c = 0
For i = LBound(myArrayCat) To UBound(myArrayCat)
SaisArt.ListCat.AddItem
SaisArt.ListCat.List(c, 0) = myArrayCat(i, 1)
c = c + 1
Next i
Case 2 'retour saisie mvt
SaisMvt.Show
Case Else
Accueil.Select
End Select
Else
MsgBox "La catégorie " & NCat & " existe déjà"
Exit Sub
End If
Else
MsgBox "Pas de nouvelle catégorie saisie !"
Exit Sub
End If
End Sub
celle qui coince, j'ai mis les tableaux sur deux feuilles différentes
Private Sub Val_Click()
If MagNew <> "" Then
NMag = Application.Proper(MagNew)
'Vérif existence Catégorie
Magasin.Select ' avant saisie
Vlf = Range("A1").End(xlDown).Row
Set rgfound = Range(Cells(1, 1), Cells(Vlf, 1)).Find(NMag, LookIn:=xlValues)
If rgfound Is Nothing Then 'n'existe pas
' rajoute magasin
Sheets("Magasin").Cells(Vlf + 1, 1).Value = NMag
Vlf = Vlf + 1
'Tri
Worksheets("Magasin").Sort.SortFields.Clear
Range("A1:A" & Vlf).Sort Key1:=Range("A1"), Header:=xlYes
'retourne sur userform appelant ou ferme
Unload SaisMag
Select Case Vmac1
Case 1 '(retour saisie article) '
SaisArt.Show
'CreListMag
'renseigner mytable
SaisArt.ListMag.Clear
Set myTabMag = Sheets("Magasin").ListObjects("TabMag")
myArrayMag = myTabMag.DataBodyRange
c = 0
For i = LBound(myArrayMag) To UBound(myArrayMag)
SaisArt.ListMag.AddItem
SaisArt.ListMag.List(c, 0) = myArrayMag(i, 1)
c = c + 1
Next i
Case 2 'retour saisie mvt
SaisMvt.Show
Case Else
Accueil.Select
End Select
Else
MsgBox "Le magasin " & NMag & " existe déjà"
Exit Sub
End If
Else
MsgBox "Pas de nom de magasin saisi !"
Exit Sub
End If
End Sub
Merci pour ton aide
Cordialement
FINDRH
J'ai contourné en insérant une cellule dans le tableau... qui doit avoir au moins trois lignes entete comprise.... et ça marche.... bidouillage !
Magasin.Select '
Range("A3").Insert xlShiftDown
Range("A3").Value = NMag
Bonjour
Soliution mise en oeuvre :
- au lieu de remplir la nouvelle ligne du tableau en une fois, je fais cellule par cellule....
- ou j'insère une ligne au début du tableau
Sheets("Mvt").ListObjects("TabMvt").ListRows.Add (1)
et je trie ensuite après avoir recopié la bonne mise en forme ( ligne 3 vers ligne 1...), pas très académique mais ça marche !
Cette ligne de code a t elle son pendant qui permette s'ajouter une loigne à la fin sans problème ??
Merci encore Jean Eric
Cordialement
FINDRH