VBA: problème de syntaxe ?

Résolu/Fermé
cestsupergenial Messages postés 17 Date d'inscription mercredi 25 mai 2016 Statut Membre Dernière intervention 13 février 2017 - 31 mai 2016 à 20:34
cestsupergenial Messages postés 17 Date d'inscription mercredi 25 mai 2016 Statut Membre Dernière intervention 13 février 2017 - 10 juin 2016 à 22:09
Bonjour,

Faisant actuellement mes premiers pas en VBA, j'ai déjà réalisé sur un petit projet une ébauche de programme me permettant d'afficher des références en fonction de diverses conditions.
J'aimerais maintenant lier ces références à des notes (du texte). J'ai donc réalisé le code ci dessous, permettant d'éventuelles modifications du texte sans changement de code, et je rencontre en problème :
En effet, si jusqu'à l'aide mémoire 'typo de base por la parte FloorSpan, tout fonctionne, le reste refuse de s'afficher, alors qu'il est bâti sur un Ctr C/Ctrl V adapté de la partie précédente.
Ça doit vraiment être une erreur toute bête, mais je ne la trouve pas.
Toute aide est la bienvenue !
Voilà le code

Sub vinculo_table_significado()



Dim A As String
Dim B As String
Dim C As String
Dim D As String

Dim Val1 As String
Dim Val2 As String
Dim Val3 As String
Dim Val4 As String
Dim Val5 As String
Dim Val6 As String


A = Sheets("possibilities").Range("H3").Value
B = Sheets("possibilities").Range("H4").Value
C = Sheets("possibilities").Range("H5").Value
D = Sheets("possibilities").Range("H6").Value

Val1 = Sheets("possibilities").Range("K3").Value
Val2 = Sheets("possibilities").Range("K4").Value
Val3 = Sheets("possibilities").Range("K5").Value
Val4 = Sheets("possibilities").Range("K6").Value
Val5 = Sheets("possibilities").Range("K5").Value
Val6 = Sheets("possibilities").Range("K6").Value

Sheets("seleccion").Select

'mesaje typo de base por slab on grade

If Range("E9").Value = "A" _
Then
Range("E10").Value = A

ElseIf Range("E9").Value = "B" _
Then
Range("E10").Value = B

ElseIf Range("E9").Value = "C" _
Then
Range("E10").Value = C

ElseIf Range("E9").Value = "D" _
Then
Range("E10").Value = D

'typo de base por la parte FloorSpan

ElseIf Range("E14").Value = "A" _
Then
Range("E15").Value = A

ElseIf Range("E14").Value = "B" _
Then
Range("E15").Value = B

ElseIf Range("E14").Value = "C" _
Then
Range("E15").Value = C

ElseIf Range("E14").Value = "D" _
Then
Range("E15").Value = D

'Isolator type

ElseIf Range("F9").Value = "1" _
Then
Range("E11") = Val1

ElseIf Range("F9").Value = "2" _
Then
Range("E11") = Val2

ElseIf Range("F9").Value = "3" _
Then
Range("E11") = Val3

ElseIf Range("F9").Value = "4" _
Then
Range("E11").Value = Val4

ElseIf Range("F9").Value = "5" _
Then
Range("E11").Value = Val5

ElseIf Range("F9").Value = "6" _
Then
Range("E11").Value = Val6

End If

End Sub

3 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
1 juin 2016 à 03:38
Bonjour
C'est normal, supposons que la cellule E9 = "A" ,la cellule E10 = A, la condition étant remplie, on sort du programme. Il faut isoler les 3 tests et les terminer chacun par "End if" pour que le programme puisse passer sur les 3.
Sub vinculo_table_significado()
    Dim A As String
    Dim B As String
    Dim C As String
    Dim D As String
    Dim Val1 As String
    Dim Val2 As String
    Dim Val3 As String
    Dim Val4 As String
    Dim Val5 As String
    Dim Val6 As String
    
    Application.ScreenUpdating = False
    A = Sheets("possibilities").Range("H3").Value
    B = Sheets("possibilities").Range("H4").Value
    C = Sheets("possibilities").Range("H5").Value
    D = Sheets("possibilities").Range("H6").Value
    
    Val1 = Sheets("possibilities").Range("K3").Value
    Val2 = Sheets("possibilities").Range("K4").Value
    Val3 = Sheets("possibilities").Range("K5").Value
    Val4 = Sheets("possibilities").Range("K6").Value
    Val5 = Sheets("possibilities").Range("K5").Value
    Val6 = Sheets("possibilities").Range("K6").Value
    
    Sheets("seleccion").Select
    'mesaje typo de base por slab on grade
    If Range("E9").Value = "A" Then
        Range("E10").Value = A
    ElseIf Range("E9").Value = "B" Then
        Range("E10").Value = B
    ElseIf Range("E9").Value = "C" Then
        Range("E10").Value = C
    ElseIf Range("E9").Value = "D" Then
        Range("E10").Value = D
    End If
    
    'typo de base por la parte FloorSpan
    If Range("E14").Value = "A" Then
        Range("E15").Value = A
    ElseIf Range("E14").Value = "B" Then
        Range("E15").Value = B
    ElseIf Range("E14").Value = "C" Then
        Range("E15").Value = C
    ElseIf Range("E14").Value = "D" Then
        Range("E15").Value = D
    End If
    
    'Isolator type
    If Range("F9").Value = "1" Then
        Range("E11") = Val1
    ElseIf Range("F9").Value = "2" Then
        Range("E11") = Val2
    ElseIf Range("F9").Value = "3" Then
        Range("E11") = Val3
    ElseIf Range("F9").Value = "4" Then
        Range("E11").Value = Val4
    ElseIf Range("F9").Value = "5" Then
        Range("E11").Value = Val5
    ElseIf Range("F9").Value = "6" Then
        Range("E11").Value = Val6
    End If
End Sub

Cdlt
1
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
31 mai 2016 à 21:20
Bonjour,

Sans fichier exemple et sans plus d'explication sur l'anomalie constatée, il sera difficile de te venir en aide.

Pour joindre un fichier, tu peux utiliser https://www.cjoint.com/

A+
0
cestsupergenial Messages postés 17 Date d'inscription mercredi 25 mai 2016 Statut Membre Dernière intervention 13 février 2017
10 juin 2016 à 22:09
merci à vous ça fonctionne bien mieux !
0