VBA: problème de syntaxe ?
Résolu
cestsupergenial
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
cestsupergenial Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
cestsupergenial Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- VBA: problème de syntaxe ?
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
3 réponses
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.
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 SubCdlt
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+
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+