Mise a jour d'une base de donné sur exel
Dernière réponse : dans Programmation
bonjour,
j'ai mis en place une base de donné, sur les composants d'un circuit pour la peinture avec en fin une quantité sale ou propre.
Afin de mettre a jour ma base de donné j'ai créer des fiches accompagné d'une macro, mais étant débutant j'ai créer une macro très lourde de se style:
Sheets("Sale").Select
'HAXOO
Dim D4 As Integer
Dim D5 As Integer
Dim D6 As Integer
D4 = Range("Sale!D4")
D5 = Range("Sale!D5")
D6 = Range("Sale!D6")
Dim a As Integer
Dim B As Integer
Dim C As Integer
Dim d As Integer
Dim E As Integer
Dim f As Integer
Dim g As Integer
Dim h As Integer
Dim sommeb As Integer
Dim sommec As Integer
Dim sommed As Integer
Dim sommeE As Integer
Dim sommef As Integer
Dim sommeg As Integer
Dim sommeh As Integer
....
je vous passe la suite...On ma dit que je pouvais créer une macro qui pouvais me retrouvé dans ma base de donné la ligne spécifique que je veux mettre a jour.
Je me doute que je ne suis pas très clair alors n'hésitai pas a me posé des questions
merci beaucoup pour votre aide
j'ai mis en place une base de donné, sur les composants d'un circuit pour la peinture avec en fin une quantité sale ou propre.
Afin de mettre a jour ma base de donné j'ai créer des fiches accompagné d'une macro, mais étant débutant j'ai créer une macro très lourde de se style:
Sheets("Sale").Select
'HAXOO
Dim D4 As Integer
Dim D5 As Integer
Dim D6 As Integer
D4 = Range("Sale!D4")
D5 = Range("Sale!D5")
D6 = Range("Sale!D6")
Dim a As Integer
Dim B As Integer
Dim C As Integer
Dim d As Integer
Dim E As Integer
Dim f As Integer
Dim g As Integer
Dim h As Integer
Dim sommeb As Integer
Dim sommec As Integer
Dim sommed As Integer
Dim sommeE As Integer
Dim sommef As Integer
Dim sommeg As Integer
Dim sommeh As Integer
....
je vous passe la suite...On ma dit que je pouvais créer une macro qui pouvais me retrouvé dans ma base de donné la ligne spécifique que je veux mettre a jour.
Je me doute que je ne suis pas très clair alors n'hésitai pas a me posé des questions
merci beaucoup pour votre aide
Autres pages sur : mise jour base donne exel
Lassé par la pub ? Créez un compte
Bonjour à tous.
badboy, sois un bon garçon, va lire le règlement et applique-le. Le code se présente entre balise [code].
papamike62, ta réponse ne concerne pas le VB. Mais elle est sans doute pertinente.
Si badboy préfère une solution purement Excel, je propose de rediriger ce topic dans le forum Windows/Logiciel. Si c'est bien en VB qu'une solution doit être donnée, ce topic est bien ici.
badboy, sois un bon garçon, va lire le règlement et applique-le. Le code se présente entre balise [code].
papamike62, ta réponse ne concerne pas le VB. Mais elle est sans doute pertinente.
Si badboy préfère une solution purement Excel, je propose de rediriger ce topic dans le forum Windows/Logiciel. Si c'est bien en VB qu'une solution doit être donnée, ce topic est bien ici.
Oups désolé pour le règlement
alors je vais essayé d'être le plus claire possible
D'un coté j'ai une base de donné
dans ce style:
machine-->élément-->taille-->piece-->quantité
et d'un autre coté un formulaire pour les opérateur, où il remplira des cellules avec le nombre d'éléments qui la reçut pour un type de machine.
Un élément peut incrémenté plusieurs pièce.
Je veux utilisé une macro car, elle me permet une automatisation avec un minimum d'action pour les opérateur
Ma premier macro n'était qu'une simple somme si je peux dire sa comme sa avec une remise a zéro de mon formulaire à la fin. Cette technique simple mais très lourde comporte un inconvénient, ma base de donné devient rigide car comme ma macro fait référence a chaque cellule un décalage dans la base donné est tout est faussé.
j'espère que c'est plus clair
merci beaucoup
alors je vais essayé d'être le plus claire possible
D'un coté j'ai une base de donné
dans ce style:
machine-->élément-->taille-->piece-->quantité
et d'un autre coté un formulaire pour les opérateur, où il remplira des cellules avec le nombre d'éléments qui la reçut pour un type de machine.
Un élément peut incrémenté plusieurs pièce.
Je veux utilisé une macro car, elle me permet une automatisation avec un minimum d'action pour les opérateur
Ma premier macro n'était qu'une simple somme si je peux dire sa comme sa avec une remise a zéro de mon formulaire à la fin. Cette technique simple mais très lourde comporte un inconvénient, ma base de donné devient rigide car comme ma macro fait référence a chaque cellule un décalage dans la base donné est tout est faussé.
j'espère que c'est plus clair
merci beaucoup
désolé pour le temps de réponse j'étais sur une solution et une solution qui marche!!!
alors voici une partie de ma base de donné
MACHINE ELEMENT CIRCUIT TAILLE PIECECIRCUIT Qts sales Qts propre
HAX00 ELEMENT_RESERVOIR TAILLE 1 RESERVOIR 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 PORTE 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 FOURREAUX 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 PAL 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 TIGE 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 CAPUCHON 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 BOUCHON 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 2 RESERVOIR
HAX00 ELEMENT_RESERVOIR TAILLE 2 PORTE
HAX00 ELEMENT_RESERVOIR TAILLE 2 FOURREAUX
HAX00 ELEMENT_RESERVOIR TAILLE 2 PAL
HAX00 ELEMENT_RESERVOIR TAILLE 2 TIGE
HAX00 ELEMENT_RESERVOIR TAILLE 2 CAPUCHON
HAX00 ELEMENT_RESERVOIR TAILLE 2 BOUCHON
HAX00 ELEMENT_RESERVOIR TAILLE 3 RESERVOIR
HAX00 ELEMENT_RESERVOIR TAILLE 3 PORTE
HAX00 ELEMENT_RESERVOIR TAILLE 3 FOURREAUX
HAX00 ELEMENT_RESERVOIR TAILLE 3 PAL
HAX00 ELEMENT_RESERVOIR TAILLE 3 TIGE
HAX00 ELEMENT_RESERVOIR TAILLE 3 CAPUCHON
HAX00 ELEMENT_RESERVOIR TAILLE 3 BOUCHON
HAX00 ELEMENT_POMPE TAILLE 1 TUBE PISTON 4 2
HAX00 ELEMENT_POMPE TAILLE 1 COLLECTEUR 4 2
HAX00 ELEMENT_POMPE TAILLE 1 TIGE 4 2
HAX00 ELEMENT_POMPE TAILLE 1 COUPELLE 4 2
HAX00 ELEMENT_POMPE TAILLE 1 GUIDE 12 2
HAX00 ELEMENT_POMPE TAILLE 1 PORTE 4 2
.....
le but était de m'incrémenter les différentes quantité a l'aide d'un formulaire
ce formulaire je l'est constitué grâce a des liste de liste qui font référence au type de machine, la taille, la propreté(sale ou propre) et si l'élément était complet ou pas.
ma solution à était celle ci
lorsque l'opérateur a fini de remplir le formulaire grâce a la formule concassé je créer un sorte de nom pour une page( page que j'ai déja créer avant) ex HA_C_T1_S --> traduction pour la machine HAX00, circuit complet, taille 1, sale.
Dans cette feuille j'ai copier tout les lignes qui a appartienne à la machine hax00 de taille1, ainsi de suite pour les autrre machine,autre taille...
voila le plus important la marco que j'ai utilisé:
_________________
Modo: Pour fermer, il faut écrire [ / CODE ].
alors dans cette macro, les différente fonction utilisé son les if pour les conditions, les do while pour les boucles.
j'espere que sa pourra aidé des passants merci encore
alors voici une partie de ma base de donné
MACHINE ELEMENT CIRCUIT TAILLE PIECECIRCUIT Qts sales Qts propre
HAX00 ELEMENT_RESERVOIR TAILLE 1 RESERVOIR 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 PORTE 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 FOURREAUX 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 PAL 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 TIGE 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 CAPUCHON 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 1 BOUCHON 2 2
HAX00 ELEMENT_RESERVOIR TAILLE 2 RESERVOIR
HAX00 ELEMENT_RESERVOIR TAILLE 2 PORTE
HAX00 ELEMENT_RESERVOIR TAILLE 2 FOURREAUX
HAX00 ELEMENT_RESERVOIR TAILLE 2 PAL
HAX00 ELEMENT_RESERVOIR TAILLE 2 TIGE
HAX00 ELEMENT_RESERVOIR TAILLE 2 CAPUCHON
HAX00 ELEMENT_RESERVOIR TAILLE 2 BOUCHON
HAX00 ELEMENT_RESERVOIR TAILLE 3 RESERVOIR
HAX00 ELEMENT_RESERVOIR TAILLE 3 PORTE
HAX00 ELEMENT_RESERVOIR TAILLE 3 FOURREAUX
HAX00 ELEMENT_RESERVOIR TAILLE 3 PAL
HAX00 ELEMENT_RESERVOIR TAILLE 3 TIGE
HAX00 ELEMENT_RESERVOIR TAILLE 3 CAPUCHON
HAX00 ELEMENT_RESERVOIR TAILLE 3 BOUCHON
HAX00 ELEMENT_POMPE TAILLE 1 TUBE PISTON 4 2
HAX00 ELEMENT_POMPE TAILLE 1 COLLECTEUR 4 2
HAX00 ELEMENT_POMPE TAILLE 1 TIGE 4 2
HAX00 ELEMENT_POMPE TAILLE 1 COUPELLE 4 2
HAX00 ELEMENT_POMPE TAILLE 1 GUIDE 12 2
HAX00 ELEMENT_POMPE TAILLE 1 PORTE 4 2
.....
le but était de m'incrémenter les différentes quantité a l'aide d'un formulaire
ce formulaire je l'est constitué grâce a des liste de liste qui font référence au type de machine, la taille, la propreté(sale ou propre) et si l'élément était complet ou pas.
ma solution à était celle ci
lorsque l'opérateur a fini de remplir le formulaire grâce a la formule concassé je créer un sorte de nom pour une page( page que j'ai déja créer avant) ex HA_C_T1_S --> traduction pour la machine HAX00, circuit complet, taille 1, sale.
Dans cette feuille j'ai copier tout les lignes qui a appartienne à la machine hax00 de taille1, ainsi de suite pour les autrre machine,autre taille...
voila le plus important la marco que j'ai utilisé:
Sub Macro_test() ' ' Macro_test Macro ' Macro enregistrée le 08/03/2010 par Verdi If Range("c7") = "PI" Then Call piece Else Call recherchefeuille End If End Sub 'recherche feuille_____________________________________________________________ Sub recherchefeuille() a = Sheets("formulaire").Range("c8") Sheets(a).Select Call COPIE End Sub 'copie elements feuille dans stockage____________________________________________________ Sub COPIE() Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("STOCKAGE").Select Range("a1").Select ActiveSheet.Paste Call propreté End Sub 'Appeler la macro recherche______________ Sub propreté() If Sheets("Formulaire").Range("C6") = "S" And Sheets("Formulaire").Range("c7") = "PI" Then Call recherchePI_S End If If Sheets("Formulaire").Range("C6") = "S" And Sheets("Formulaire").Range("c7") = "CO" Then Call rechercheP_S End If If Sheets("Formulaire").Range("C6") = "S" And Sheets("Formulaire").Range("c7") = "PA" Then Call rechercheP_S End If If Sheets("Formulaire").Range("C6") = "P" And Sheets("Formulaire").Range("c7") = "PI" Then Call recherchePI_P End If If Sheets("Formulaire").Range("C6") = "P" And Sheets("Formulaire").Range("c7") = "CO" Then Call rechercheP_P End If If Sheets("Formulaire").Range("C6") = "P" And Sheets("Formulaire").Range("c7") = "PA" Then Call rechercheP_P End If End Sub Sub rechercheP_S() ' boucle de recherche bdd Sheets("BDD2").Select o = Sheets("STOCKAGE").Range("A1").Value p = Sheets("STOCKAGE").Range("B1").Value q = Sheets("STOCKAGE").Range("C1").Value r = Sheets("STOCKAGE").Range("D1").Value Do While Sheets("STOCKAGE").Range("A1") <> "" Dim i As Integer For i = 2 To 200 If Range("A" & i) = Sheets("STOCKAGE").Range("A1").Value And Range("B" & i) = Sheets("STOCKAGE").Range("B1").Value And Range("C" & i) = Sheets("STOCKAGE").Range("C1").Value And Range("D" & i) = Sheets("STOCKAGE").Range("D1").Value Then Range("e" & i).Value = Range("e" & i).Value + 1 * Sheets("formulaire").Range("b10").Value Call Macro2 Sheets("BDD2").Select End If Next i Loop End Sub Sub rechercheP_P() ' boucle de recherche bdd Sheets("BDD2").Select o = Sheets("STOCKAGE").Range("A1").Value p = Sheets("STOCKAGE").Range("B1").Value q = Sheets("STOCKAGE").Range("C1").Value r = Sheets("STOCKAGE").Range("D1").Value Do While Sheets("STOCKAGE").Range("A1") <> "" Dim i As Integer For i = 2 To 200 If Range("A" & i) = Sheets("STOCKAGE").Range("A1").Value And Range("B" & i) = Sheets("STOCKAGE").Range("B1").Value And Range("C" & i) = Sheets("STOCKAGE").Range("C1").Value And Range("D" & i) = Sheets("STOCKAGE").Range("D1").Value Then Range("f" & i).Value = Range("f" & i).Value + 1 * Sheets("formulaire").Range("b10").Value Call Macro2 Sheets("BDD2").Select End If Next i Loop End Sub Sub recherchePI_S() ' boucle de recherche bdd Sheets("BDD2").Select o = Sheets("STOCKAGE").Range("A1").Value p = Sheets("STOCKAGE").Range("B1").Value q = Sheets("STOCKAGE").Range("C1").Value r = Sheets("STOCKAGE").Range("D1").Value Do While Sheets("STOCKAGE").Range("A1") <> "" Dim i As Integer For i = 2 To 200 If Range("A" & i) = Sheets("STOCKAGE").Range("A1").Value And Range("B" & i) = Sheets("STOCKAGE").Range("B1").Value And Range("C" & i) = Sheets("STOCKAGE").Range("C1").Value And Range("D" & i) = Sheets("STOCKAGE").Range("D1").Value Then Range("e" & i).Value = Range("e" & i).Value + Sheets("stockage").Range("e1").Value Call Macro2 Sheets("BDD2").Select End If Next i Loop End Sub Sub recherchePI_P() ' boucle de recherche bdd Sheets("BDD2").Select o = Sheets("STOCKAGE").Range("A1").Value p = Sheets("STOCKAGE").Range("B1").Value q = Sheets("STOCKAGE").Range("C1").Value r = Sheets("STOCKAGE").Range("D1").Value Do While Sheets("STOCKAGE").Range("A1") <> "" Dim i As Integer For i = 2 To 200 If Range("A" & i) = Sheets("STOCKAGE").Range("A1").Value And Range("B" & i) = Sheets("STOCKAGE").Range("B1").Value And Range("C" & i) = Sheets("STOCKAGE").Range("C1").Value And Range("D" & i) = Sheets("STOCKAGE").Range("D1").Value Then Range("F" & i).Value = Range("F" & i).Value + Sheets("stockage").Range("e1").Value Call Macro2 Sheets("BDD2").Select End If Next i Loop End Sub [code]
_________________
Modo: Pour fermer, il faut écrire [ / CODE ].
alors dans cette macro, les différente fonction utilisé son les if pour les conditions, les do while pour les boucles.
j'espere que sa pourra aidé des passants merci encore
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- articlesMise a jour dun base avec un txt
- ForumMise a jour de hostap
- ForumMise a jour kb938371
- ForumMise a jour xorg
- ForumMise a jour pour linksys
- ForumMise a jour ram
- ForumMise a jour steam
- ForumMise a jour automatique de base acces a mysql
- ForumMise a jour du bios mise a jour du bios
- ForumMise a jour openoffice mise a jour
- Voir plus