Microsoft 365 Comment modifier une base depuis un onglet ?

RICXXX

XLDnaute Nouveau
Bonjour,
je ne suis pas très doué avec Excel aussi peut être quelqu'un pourra solutionner ma demande.
J'ai un base de données renseignée appelé "BASE".
Un onglet appelé "Affectation" sur lequel avec une formule de recherche et un lecteur de code barre je récupère les objets de ma base. Sur cet onglet je souhaite pouvoir modifier la colonne "commentaire" et statut" et que la modification soit prise en compte dans la "BASE" .
Généralement le changement de statut se fait par lot aussi j'incrémente cette colonne par une copie de A1. Les commentaires se font au cas pas cas.
Peut être que l'idéal est que une fois que j'ai fait ces opérations il n'y ai qu'à appuyer sur un bouton pour que la base prenne en compte ces modifications, et que je puisse recommencer une nouvelle série d'affectation, mais je ne sais pas faire ça.
Si quelqu'un peut m'aider, merci d'avance
 

Pièces jointes

  • Fichier affectation.xlsx
    31.1 KB · Affichages: 8
Solution
Bonsoir à tous,
Une autre voie par une macro utilisant ADO pour ne pas rendre ta base dépendante des affectations qui peuvent planter avec le lecteur de code barre.
La sub TestByAdo à affecter à un bouton sur la feuille Affectation :
VB:
Sub TestByAdo()
Dim Select_String As String
Dim Sql_Driver  As String
    
    Sql_Driver = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};" & _
                 "DBQ=" & ThisWorkbook.FullName & ";READONLY=FALSE"
    
    Select_String = _
    " Update " & Get_Table([Tableau1_2]) & "  Base  , " & Get_Table([Tableau1]) & "  Affectation " & _
    "   Set Base.Commentaire=affectation.Commenatire,  " & _
    "       Base.Statut=affectation.Statut  " & _
    "   Where Base.`code barre` = Affectation.`code...

job75

XLDnaute Barbatruc
Bonsoir RICXXX,

Dans la feuille "BASE" il suffit de mettre ces formules en colonnes G et H :
Code:
=SIERREUR(""&RECHERCHEV([@[Code barre]];Tableau1;7;0);"")

=SIERREUR(""&RECHERCHEV([@[Code barre]];Tableau1;8;0);"")
A+
 

Pièces jointes

  • Fichier affectation(1).xlsx
    25 KB · Affichages: 2

fanch55

XLDnaute Barbatruc
Bonsoir à tous,
Une autre voie par une macro utilisant ADO pour ne pas rendre ta base dépendante des affectations qui peuvent planter avec le lecteur de code barre.
La sub TestByAdo à affecter à un bouton sur la feuille Affectation :
VB:
Sub TestByAdo()
Dim Select_String As String
Dim Sql_Driver  As String
    
    Sql_Driver = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};" & _
                 "DBQ=" & ThisWorkbook.FullName & ";READONLY=FALSE"
    
    Select_String = _
    " Update " & Get_Table([Tableau1_2]) & "  Base  , " & Get_Table([Tableau1]) & "  Affectation " & _
    "   Set Base.Commentaire=affectation.Commenatire,  " & _
    "       Base.Statut=affectation.Statut  " & _
    "   Where Base.`code barre` = Affectation.`code barre`"
    
    If Select_String <> "" Then
        On Error Resume Next
        Set Source_Folder = CreateObject("ADODB.Connection")
            Source_Folder.Open Sql_Driver
            Set Source_Filtre = CreateObject("ADODB.Recordset")
                Source_Filtre.ActiveConnection = Source_Folder
                Source_Filtre.Open Select_String
                    If Err <> 0 Then MsgBox "Erreur " & Err().Number & vbLf & Err().Description
                Source_Filtre.Close
            Set Source_Filtre = Nothing
         Set Source_Folder = Nothing
    End If
    
End Sub
Function Get_Table(Table As Object) As String
    With Table
        Get_Table = "[" & .Worksheet.Name & "$" & .ListObject.Range.Address(False, False) & "]"
    End With
End Function
 

RICXXX

XLDnaute Nouveau
Bonjour,
merci pour ses réponses super rapide !!! Alors j'ai choisi l'option avec macro qui répond à 100% à ce que je voulais. Je viens de terminer mon fichier final avec boutons et options et vraiment je suis plus que satisfait.

Encore merci, et à vous revoir si une nouvelle problématique me venait.
 

Discussions similaires

Statistiques des forums

Discussions
312 082
Messages
2 085 168
Membres
102 804
dernier inscrit
edaguo