Microsoft 365 Userform vers Tableau

eric72

XLDnaute Accro
Bonsoir à tous,
Je tente de résoudre un problème jamais rencontré
J'ai un userform et j'aimerais qu'en fonction de l'année que je saisis, le tableau choisi pour exporter mes données soit sélectionné
Exemple si je saisie 2023 j'aimerais que l'export soit vers TbObj2023, si 2024 vers TbObj2024.
J'ai tenté en concatenant mais sans succès.
L'un d'entre vous a-t-il déjà rencontré et résolu ce cas.
Merci beaucoup pour votre dévouement.
Eric
 
Solution
Bonjour à tous

@eric72

Je te propose ceci plus digeste dans ton usf

VB:
Private Sub Cbrecherche_afterupdate()
Dim tb As ListObject, j&, n%, lig%
Set tb = Sheets("Base Objectif").ListObjects("tbobj" & Me.Cbrecherche)
n = 0
lig = 1
With tb
    For j = 1 To 10
        Me.Controls("CbComm" & j) = .DataBodyRange.Cells(j, .ListColumns(1).Index).Value
    Next j
    For j = 2 To 121
        Select Case j
            Case 14:    n = 12:    lig = 2
            Case 26:    n = 24:    lig = 3
            Case 38:    n = 36:    lig = 4
            Case 50:    n = 48:    lig = 5
            Case 62:    n = 60:    lig = 6
            Case 74:    n = 72:    lig = 7
            Case 86:    n = 84:    lig = 8
            Case 98:    n = 96...

vgendron

XLDnaute Barbatruc
Hello

avec cette syntaxe
VB:
Private Sub BtAjoutObjectif_Click()
' Ajoute les données à la base "Recette"
Dim tb As ListObject
Dim V, I&, W

Application.ScreenUpdating = False
Set tb = Sheets("Objectif").ListObjects("tbobj" & Me.TxtAnnee)

With tb
    V = Array(CbComm1.Value) 'on ajoute une ligne au tableau
    For I = LBound(V) To UBound(V)
        If IsNumeric(V(I)) Then V(I) = CDbl(V(I))
    Next
    .ListRows.Add.Range.Cells(1).Resize(, 1) = V
End With

Application.ScreenUpdating = True
End Sub
 

eric72

XLDnaute Accro
Bonsoir vgendron,
En effet ça marche super bien, seul petit hic c'est que ça l'ajoute à la 2ème ligne quand le tableau est vide
Et est-ce que l'on peut de la meme maniere récupérer les infos déjà saisies à l'aide de la combobox CbRecherche.
Merci beaucoup
Eric
 

Phil69970

XLDnaute Barbatruc
Bonjour à vous 2


Je l'ai fait je le poste....

VB:
Private Sub BtAjoutObjectif_Click()
' Ajoute les données à la base "Recette"
Dim tb
Application.ScreenUpdating = False

Dim Ws As Worksheet
Set Ws = Worksheets("Objectif")

Dim V, i&, W

tb = "tbobj" & TxtAnnee

With Ws.ListObjects(tb)
    V = Array(CbComm1.Value) 'on ajoute une ligne au tableau
    For i = LBound(V) To UBound(V)
        If IsNumeric(V(i)) Then V(i) = CDbl(V(i))
    Next
    .ListRows.Add.Range.Cells(1).Resize(, 1) = V
End With

Application.ScreenUpdating = True
End Sub

@Phil69970
 

eric72

XLDnaute Accro
Oui l'idée est de remplir les textbox avec les infos dejà remplies dans les tableaux en fonction de l'année sélectionnée dans la combobox de "recherche", puis les modifier et les remettre dans le tableau correspondant.
Pas simple le garçon, je l'avoue!!!
Merci encore
Encore
 

vgendron

XLDnaute Barbatruc
Bonjour
si tu n'as pas d'idée sur comment présenter tes données et ton formulaire de saisie, fais une recherche sur le forum, dans les ressources partagées....

il y a des tas d'exemples pour remplissage de listbox, ajout de données dans une table,, saisie par textbox...
 

cp4

XLDnaute Barbatruc
Bonjour @eric72 , @vgendron, @Phil69970 ,

Pas simple le garçon, je l'avoue!!!
Dites-moi, avez-vous ce truc à l'ouverture du fichier du post#1 (gif ci-dessous)

test.gif


Merci pour retour sur cette bizarrerie.
 

Discussions similaires

Réponses
4
Affichages
511