Probleme insoluble
Fermé
sql84
Messages postés
2
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
5 novembre 2007
-
5 nov. 2007 à 01:01
sql84 Messages postés 2 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 5 novembre 2007 - 5 nov. 2007 à 01:39
sql84 Messages postés 2 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 5 novembre 2007 - 5 nov. 2007 à 01:39
A voir également:
- Probleme insoluble
- Problème insoluble face à un n° de téléphone non valide ! - Forum Free mobile
3 réponses
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
5 nov. 2007 à 01:07
5 nov. 2007 à 01:07
Tout d'abord merci pour cet exposé détaillé. Par contre merci la prochaine fois de mettre un titre explicite à ton message (par exemple [VBA] la taille de mon fichier augmente sans raison")
Je ne connais rien à VB mais j'ai déjà entendu parler de ce phénomne sur d'autres fichiers "microsoft". Je pense que tes modifications sont enregistrées dans le fichier excel au lieu d'être directement appliquées (ne me demande pas pourquoi !). En fait je me demandais si tu ne pouvais pas enregistrer tes données dans un fichier texte ordinaire (genre un tsv ou un csv) pour le réimporter ensuite éventuellement dans excel.
Une autre solution c'est d'utiliser un autre langage de programmation (par exemple du C++ ?) et d'oublier les formats de fichiers microsoft puisque manifestement ils se comportent bizarrement...
Bonne chance
Je ne connais rien à VB mais j'ai déjà entendu parler de ce phénomne sur d'autres fichiers "microsoft". Je pense que tes modifications sont enregistrées dans le fichier excel au lieu d'être directement appliquées (ne me demande pas pourquoi !). En fait je me demandais si tu ne pouvais pas enregistrer tes données dans un fichier texte ordinaire (genre un tsv ou un csv) pour le réimporter ensuite éventuellement dans excel.
Une autre solution c'est d'utiliser un autre langage de programmation (par exemple du C++ ?) et d'oublier les formats de fichiers microsoft puisque manifestement ils se comportent bizarrement...
Bonne chance
sql84
Messages postés
2
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
5 novembre 2007
5 nov. 2007 à 01:39
5 nov. 2007 à 01:39
Bonsoir,
merci de la piste
mais je trouve que cela fait un peu usine a gaz
je pense que ce problème est plus dut a mon incompétence qu'a un bug d'excel
moi aussi je suis une bille en vba je m'y suis remit pour faire une petite appli à ma mère
si cela continu je vais lui faire un truc en PHP/Mysql là j'aurai pas de problème car le C++ je suis pas assez bon... un peu comme le VBA quoi... ;-)
enfin voila je continu a chercher un peu quand même.
si cela peut aider ci-dessous le code de mes procedures :
Private Sub DetruireLigne()
DerniereLigne = ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To 1 Step -1
If Application.CountA(Rows(R)) = 0 Then Rows(R).Delete Shift:=xlUp
Next R
End Sub
Private Sub CommandButton1_Click()
UserForm3.Hide
Set UserForm3 = Nothing
Unload UserForm3
Feuil6.Label3.Caption = vbNullString
End Sub
Private Sub Image2_Click()
Dim Btns As String
Btns = "vbYesNo + vbQuestion + vbDefaultButton1 + vbApplicationModal"
Ok = MsgBox("êtes vous sûr de vouloir supprimer l'enregistrement N° " & MSFlexGrid1.RowSel & " ?", 4 + 32, "Confimez")
If Ok = 6 Then
Select Case (MSFlexGrid1.RowSel)
Case 1 To 3
MsgBox ("La cellule N°" & MSFlexGrid1.RowSel & " doît être conservée")
Case Else
Range("operations!A" & MSFlexGrid1.RowSel).Value = ""
Call DetruireLigne
Call UserForm_Activate
Feuil6.Label3.Caption = "Le type d'opération a été supprimé"
End Select
End If
End Sub
Private Sub UserForm_Activate()
Dim i As Integer
' Met en place la liste
With MSFlexGrid1
.Clear
.FormatString = "<ID |> Libellé"
.ColWidth(0) = 1050
.ColWidth(1) = 2500
End With
' Affiche les type d'operation
tCpt = Range("operations!A1").End(xlDown).Row
MSFlexGrid1.Rows = tCpt + 1
With MSFlexGrid1.Rows = tCpt
For i = 1 To tCpt
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = i
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = Range("operations!A" & i)
If i > 1 Then
Label1.Caption = "Actuellement " & i & " Enregistrements"
Else
Label1.Caption = "Actuellement " & i & " Enregistrement"
End If
Next i
End With
End Sub
Private Sub MSFlexGrid1_DblClick()
UserForm4.TextBox1.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, MSFlexGrid1.ColSel)
UserForm4.Label2.Caption = MSFlexGrid1.RowSel
UserForm4.Show
End Sub
Private Sub Image1_Click()
Call MSFlexGrid1_DblClick
End Sub
merci de la piste
mais je trouve que cela fait un peu usine a gaz
je pense que ce problème est plus dut a mon incompétence qu'a un bug d'excel
moi aussi je suis une bille en vba je m'y suis remit pour faire une petite appli à ma mère
si cela continu je vais lui faire un truc en PHP/Mysql là j'aurai pas de problème car le C++ je suis pas assez bon... un peu comme le VBA quoi... ;-)
enfin voila je continu a chercher un peu quand même.
si cela peut aider ci-dessous le code de mes procedures :
Private Sub DetruireLigne()
DerniereLigne = ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To 1 Step -1
If Application.CountA(Rows(R)) = 0 Then Rows(R).Delete Shift:=xlUp
Next R
End Sub
Private Sub CommandButton1_Click()
UserForm3.Hide
Set UserForm3 = Nothing
Unload UserForm3
Feuil6.Label3.Caption = vbNullString
End Sub
Private Sub Image2_Click()
Dim Btns As String
Btns = "vbYesNo + vbQuestion + vbDefaultButton1 + vbApplicationModal"
Ok = MsgBox("êtes vous sûr de vouloir supprimer l'enregistrement N° " & MSFlexGrid1.RowSel & " ?", 4 + 32, "Confimez")
If Ok = 6 Then
Select Case (MSFlexGrid1.RowSel)
Case 1 To 3
MsgBox ("La cellule N°" & MSFlexGrid1.RowSel & " doît être conservée")
Case Else
Range("operations!A" & MSFlexGrid1.RowSel).Value = ""
Call DetruireLigne
Call UserForm_Activate
Feuil6.Label3.Caption = "Le type d'opération a été supprimé"
End Select
End If
End Sub
Private Sub UserForm_Activate()
Dim i As Integer
' Met en place la liste
With MSFlexGrid1
.Clear
.FormatString = "<ID |> Libellé"
.ColWidth(0) = 1050
.ColWidth(1) = 2500
End With
' Affiche les type d'operation
tCpt = Range("operations!A1").End(xlDown).Row
MSFlexGrid1.Rows = tCpt + 1
With MSFlexGrid1.Rows = tCpt
For i = 1 To tCpt
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = i
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = Range("operations!A" & i)
If i > 1 Then
Label1.Caption = "Actuellement " & i & " Enregistrements"
Else
Label1.Caption = "Actuellement " & i & " Enregistrement"
End If
Next i
End With
End Sub
Private Sub MSFlexGrid1_DblClick()
UserForm4.TextBox1.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, MSFlexGrid1.ColSel)
UserForm4.Label2.Caption = MSFlexGrid1.RowSel
UserForm4.Show
End Sub
Private Sub Image1_Click()
Call MSFlexGrid1_DblClick
End Sub