Pas de remplissage des cellules dans un fichier Excel
Fermé
Majo88
-
7 mars 2013 à 10:25
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 14 mars 2013 à 09:28
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 14 mars 2013 à 09:28
A voir également:
- Pas de remplissage des cellules dans un fichier Excel
- Fichier rar - Guide
- Excel additionner des cellules - Guide
- Liste déroulante excel - Guide
- Fichier host - Guide
- Fichier iso - Guide
3 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
8 mars 2013 à 08:57
8 mars 2013 à 08:57
Bonjour,
Comment veux tu qu'on essaies de t'aider car on ne sait pas à quoi correspondent tes variables et d'où elles viennent
val1, val2, Tabl().... ect dans quel code ?
il y a un msgbox, dans quel code ?
enfin en général pour ce genre de pb, je partirais plutôt des antécédents qui font que ton classeur reste vide
tu vois...
Comment veux tu qu'on essaies de t'aider car on ne sait pas à quoi correspondent tes variables et d'où elles viennent
val1, val2, Tabl().... ect dans quel code ?
il y a un msgbox, dans quel code ?
enfin en général pour ce genre de pb, je partirais plutôt des antécédents qui font que ton classeur reste vide
tu vois...
Oui j'ai oublier de préciser pour les variables. Les MsgBox c'était juste pour tester si mes modifications de valeur fonctionnais correctement, il ne sont plus dans le code. Tout s'éxécute correctement au début, c'est à partir des lignes en gras que ça pose problème. Voici le code complet :
Option Compare Database Option Explicit Private Sub OK_Click() Dim ch As String Dim strligne As String Dim tab1() As String Dim deb As String Dim fin As String Dim tab2() As String Dim d, h As String Dim val1 As Long Dim val2 As String Dim val3, val4, val5, val6, val7, val8, val9, val10 As Single Open "D:\Base mesure gainage\QUASAR.dat" For Input As #1 While Not EOF(1) Line Input #1, strligne Wend Close 1 Dim i As Integer Dim dec As Single tab1() = Split(strligne, vbTab) 'Découpe la chaine selon les espaces For i = 0 To UBound(tab1()) tab1(i) = Replace(tab1(i), ".", ",") Next i deb = InStr(strligne, "[") 'Recherche un crochet ouvrant fin = InStr(strligne, "]") 'Recherche un crochet fermant ch = Mid(strligne, deb, fin) 'Retourne une chaîne compris entre deux caractères ch = Replace(ch, "[", "") 'Supprime le premier caractère ch = Replace(ch, "]", "") 'Supprime le dernier caractère ch = Replace(ch, " ", "") 'Supprime les espaces tab2() = Split(ch, ",") 'Découpe la chaine selon les virgules For i = 0 To UBound(tab2()) tab2(i) = Replace(tab2(i), ".", ",") Next i Set db = CurrentDb() Dim db As DAO.Database Dim rst1, rst2 As DAO.Recordset Set rst1 = db.OpenRecordset("SELECT * FROM Produits WHERE idProduit = " & Me.cboProduit.Column(0, Me.cboProduit.ListIndex)) val1 = rst1("codeProduit") val2 = rst1("designationProduit") val3 = rst1("toleranceEpaisseurMin") val4 = rst1("toleranceEpaisseurMoyMin") val5 = rst1("toleranceEpaisseurMoyMax") val6 = rst1("toleranceEpaisseurMax") val7 = rst1("toleranceDiametreMin") val8 = rst1("toleranceDiametreMoyMin") val9 = rst1("toleranceDiametreMoyMax") val10 = rst1("toleranceDiametreMax") rst1.Close Set rst1 = Nothing Set rst2 = db.OpenRecordset("mesures") rst2.AddNew rst2("aireGaine") = Round(CDec(tab1(3)), 2) rst2("excentrement") = Round(CDec(tab1(6)), 2) rst2("diametreIntMax") = Round(CDec(tab1(11)), 2) rst2("diametreIntMoy") = Round(CDec(tab1(12)), 2) rst2("diametreIntMin") = Round(CDec(tab1(13)), 2) rst2("diametreOutMax") = Round(CDec(tab1(14)), 2) rst2("diametreOutMoy") = Round(CDec(tab1(15)), 2) rst2("diametreOutMin") = Round(CDec(tab1(16)), 2) rst2("touret") = tab1(21) rst2("commande") = tab1(23) rst2("machine") = Me.cboMachine rst2("operateur") = tab1(25) rst2("longueurTouret") = tab1(27) rst2("dateMesure") = CDate(tab1(49)) rst2("ovalite") = CDec(tab1(52)) rst2("epaisseurMax") = Round(CDec(tab1(62)), 2) rst2("epaisseurMoy") = Round(CDec(tab1(63)), 2) rst2("epaisseurMin") = Round(CDec(tab1(64)), 2) rst2("epaisseur1") = Round(CDec(tab2(0)), 2) rst2("epaisseur2") = Round(CDec(tab2(1)), 2) rst2("epaisseur3") = Round(CDec(tab2(2)), 2) rst2("epaisseur4") = Round(CDec(tab2(3)), 2) rst2("epaisseur5") = Round(CDec(tab2(4)), 2) rst2("epaisseur6") = Round(CDec(tab2(5)), 2) rst2("toleranceEpaisseurMin") = val3 rst2("toleranceEpaisseurMoyMin") = val4 rst2("toleranceEpaisseurMoyMax") = val5 rst2("toleranceEpaisseurMax") = val6 rst2("toleranceDiametreMin") = val7 rst2("toleranceDiametreMoyMin") = val8 rst2("toleranceDiametreMoyMax") = val9 rst2("toleranceDiametreMax") = val10 rst2.Update rst2.Close Set rst2 = Nothing Set db = Nothing 'Séparation de la date(jj/mm/yyyy) de dateMesure If Len(Month(CDate(tab1(49)))) = 1 Then d = Day(CDate(tab1(49))) & "/" & 0 & Month(CDate(tab1(49))) & "/" & Year(CDate(tab1(49))) Else d = Day(CDate(tab1(49))) & "/" & Month(CDate(tab1(49))) & "/" & Year(CDate(tab1(49))) End If h = Hour(CDate(tab1(49))) & ":" & Minute(CDate(tab1(49))) & ":" & Second(CDate(tab1(49))) 'Séparation de l'heure(hh:mm:ss) de dateMesure Dim x1 As excel.Application Dim work As excel.Workbook Dim wrb As excel.Workbook Set x1 = New excel.Application x1.Visible = True Set wrb = x1.Workbooks.Open(CurrentProject.Path & "\PV_modele.xlsx") 'Démarrer Excel With wrb.Sheets(1) 'Insertion des valeurs .Range("I3").Value = val1 & "-" & val2 'codeProduit + designationProduit .Range("H5").Value = d 'date .Range("H6").Value = h 'heure .Range("H7").Value = tab1(25) 'operateur .Range("H8").Value = Me.cboMachine 'machine .Range("N5").Value = tab1(21) 'touret .Range("N6").Value = tab1(27) 'longueurTouret .Range("N7").Value = tab1(23) 'commande .Range("C15").Value = Round(CDec(tab1(64)), 2) 'epaisseurMin .Range("E15").Value = Round(CDec(tab1(63)), 2) 'epaisseurMoy .Range("G15").Value = Round(CDec(tab1(62)), 2) 'epaisseurMax .Range("I15").Value = Round(CDec(tab1(16)), 2) 'diametreMin .Range("L15").Value = Round(CDec(tab1(15)), 2) 'diametreMoy .Range("N15").Value = Round(CDec(tab1(14)), 2) 'diametreMax .Range("D15").Value = val3 'toleranceEpaisseurMin .Range("F15").Value = val4 'toleranceEpaisseurMoyMin .Range("H15").Value = val6 'toleranceEpaisseurMax .Range("J15").Value = val7 'toleranceDiametreMin .Range("K15").Value = val8 'toleranceDiametreMoyMin .Range("M15").Value = val9 'toleranceDiametreMoyMax .Range("O15").Value = val10 'toleranceDiametreMax End With If CDec(tab1(64)) < val3 Then wrb.Worksheets(1).Range("C15").Interior.Color = vbGreen Else wrb.Worksheets(1).Range("C15").Interior.Color = vbRed End If If CDec(tab1(63)) > val4 And CDec(tab1(63)) < val5 Then wrb.Worksheets(1).Range("E15").Interior.Color = vbGreen Else wrb.Worksheets(1).Range("E15").Interior.Color = vbRed End If If CDec(tab1(62)) > val6 Then wrb.Worksheets(1).Range("G15").Interior.Color = vbGreen Else wrb.Worksheets(1).Range("G15").Interior.Color = vbRed End If If CDec(tab1(16)) < val7 Then wrb.Worksheets(1).Range("I15").Interior.Color = vbGreen Else wrb.Worksheets(1).Range("I15").Interior.Color = vbRed End If If CDec(tab1(15)) > val8 And CDec(tab1(15)) < val9 Then wrb.Worksheets(1).Range("L15").Interior.Color = vbGreen Else wrb.Worksheets(1).Range("L15").Interior.Color = vbRed End If If CDec(tab1(14)) > val10 Then wrb.Worksheets(1).Range("N15").Interior.Color = vbGreen Else wrb.Worksheets(1).Range("N15").Interior.Color = vbRed End If Set wrb = Nothing Set x1 = NothingEnd Sub
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
8 mars 2013 à 16:37
8 mars 2013 à 16:37
Désolé, je ne vois pas...
Rst1 se remplit il bien? valeur de val1, 2.... ?
je travaille avec ADODB et non DAO: peut-^tre quelque chose qui m'échappe §
note: quand j'ai un recordset je teste (adodb) If Rst1.EOF then goto erreur
Rst1 se remplit il bien? valeur de val1, 2.... ?
je travaille avec ADODB et non DAO: peut-^tre quelque chose qui m'échappe §
note: quand j'ai un recordset je teste (adodb) If Rst1.EOF then goto erreur
J'ai trouvé. Ca ne venait pas du code VBA Access mais de la macro ScreenUpdating dans Excel qui était à false. Je l'ai donc mis à true.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
14 mars 2013 à 09:28
14 mars 2013 à 09:28
.... DE RIEN