Compatibilité VB6 avec la suite office 2010

surpont1 Messages postés 8 Date d'inscription dimanche 27 avril 2003 Statut Membre Dernière intervention 22 juin 2011 - 17 juin 2011 à 09:14
surpont1 Messages postés 8 Date d'inscription dimanche 27 avril 2003 Statut Membre Dernière intervention 22 juin 2011 - 17 juin 2011 à 09:19
Bonjour,

je souhaiterai savoir si Visual Basic 6 était compatible avec la suite office 2010 et notamment Excel 2010.
En effet, j'ai l'impression que les marges ainsi que la représentation des graphique personnalisé ne sont plus interpreté de la même façon.

Est-ce une impression ou c'est réellement ce qu'il en est ?

( un exemple : Le programme trace des points sur Excel 2000 et sur Excel 2010, on obtient des lignes brisés ...)

1 réponse

surpont1 Messages postés 8 Date d'inscription dimanche 27 avril 2003 Statut Membre Dernière intervention 22 juin 2011
17 juin 2011 à 09:19
Pour completer mon message , je vais vous expliciter mon probleme obtenu.

Donc le problème est que sur excel 2000, les courbes que je traces avec un logiciel codé en VB6 se tracent parfaitement.
Mais dès lors qu'on l'utilise avec la suite office 2010, tout est modifié...

par exemple, ce morçeau de code permet de placer ma légende "MAXIMUM ABSORBED REACTIVE POWER"
nomzone$ = "Zone d'absorption maximale"
    Xpoint = (Val(U(k, 1, Val(NBPTS(k)))))
    Ypoint = (Qmin(k) + DeltaQ(k))
    TextZone k, nomzone$, UCase(ERA), Xpoint, Ypoint, Xpoint + 2, Ypoint 


et TextZone est une fonction
Public Sub TextZone(k%, ZoneName$, texte$, x1!, y1!, x2!, y2!, Optional couleur%)
Dim XX0!, YY0!, l!, LL!, h!, HH!
Dim XX1!, YY1!, DX!, DY!
 
XX0 = ActiveChart.PlotArea.InsideLeft
YY0 = ActiveChart.PlotArea.InsideTop
HH = ActiveChart.PlotArea.InsideHeight
LL = ActiveChart.PlotArea.InsideWidth
 
If (IPRESENT 1 Or IPRESENT 10) Then
        If reponse <> "non" Then
            h = Qmax(k) - Qmin(k)
            l = Umax(k) - Umin(k)
            XX1 = XX0 + (x1 - Umin(k)) * LL / l
            YY1 = YY0 + (Qmax(k) - y1) * HH / h
        Else
            h = Umax(k) - Umin(k)
            l = Qmax(k) - Qmin(k)
            XX1 = XX0 + (Qmax(k) - x1) * LL / l
            YY1 = YY0 + (y1 - Umin(k)) * HH / h
            
        End If
        
 
Else
 
        If reponse = "non" Then
            h = Qmax(k) - Qmin(k)
            l = Umax(k) - Umin(k)
            XX1 = XX0 + (x1 - Umin(k)) * LL / l
            YY1 = YY0 + (Qmax(k) - y1) * HH / h
        Else
            h = Umax(k) - Umin(k)
            l = Qmax(k) - Qmin(k)
            XX1 = XX0 + (Qmax(k) - x1) * LL / l
            YY1 = YY0 + (y1 - Umin(k)) * HH / h
        End If
        
        
   ' End If
    
          
End If
 
DX = (x2 - x1) * LL / l
DY = (y1 - y2) * HH / h
' fin de modification 003-D
 
 
'Form1.Text4.Text = XX0 & "-" & YY0 & "-" & HH & "-" & LL & "-" & h & "-" _
& l & "-" & XX1 & "-" & YY1
 
 
 
With ActiveChart
    Set pa = .PlotArea
    With .Shapes.AddTextbox(msoTextOrientationHorizontal, XX1, YY1, DX, DY)
 '      .TextFrame.Characters.Font.Name = "Arial Narrow"
        .TextFrame.Characters.Font.ColorIndex = couleur
        .TextFrame.Characters.Text = texte$
        .TextFrame.HorizontalAlignment = xlLeft
        .TextFrame.VerticalAlignment = xlTop
        .TextFrame.Characters.Font.Size = 9 '8
        .TextFrame.AutoSize = True
        .Name = ZoneName$
        
    End With
End With
End Sub


Donc logiquement, ma légende devrait bien se placer car ce sont des formules mathématiques qui positionne le X et le Y.
J'ai même essayé de fixer les coordonnées en dur dans le code mais rien ne se passe ... j'obtiens toujours le même résultat.

Est-ec que quelqu'un pourrait - il m'aider ?
Je vous en serais reconnaissant.
Merci.
(Ps: Soyez indulgent, j'ai découvert le VB6 il y a 3 jours ... )
0
Rejoignez-nous