Erreur 1004 - Variable contenant un espace dans .formula
Bonjour !
Pour les besoins d'un projet, je dois remplir des cellules avec une formule qui varie à l'aide de variable dans VBA.
Cependant, lorsque j'assigne une formule à la cellule et que celle-ci contient une variable String contenant un espace, Excel me renvoie une erreur 1004
Ci dessous, le code en question
Dim Matricule As String, Autocode As String, Trouve As Range, Cours As String, nb_cours As Integer, Compteur As Integer
Matricule = Left(comboEtudiant.Value, 8)
Set Trouve = Worksheets("Groupes").Cells.Find(Matricule, LookIn:=xlValues, Lookat:=xlWhole)
Autocode = Trouve.Offset(0, 4).Value
Worksheets("Temp").Cells.Clear
Worksheets("Temp").Range("A1") = "Cours"
Worksheets("Temp").Range("B1") = "Pourcentage"
Worksheets("Temp").Range("C1") = "Relevés"
nb_cours = Worksheets("Paramètres").Range("C5").Value
Compteur = 1
For i = 1 To nb_cours
Cours = Worksheets("Liste des cours").Cells(i + 1, 2)
If Sheets(Cours).Range("A2").Value <> "" Then
Compteur = Compteur + 1
Worksheets("Temp").Cells(Compteur, 1).Value = Cours
Worksheets("Temp").Cells(Compteur, 2).FormulaLocal = "=NB.SI.ENS(" & Cours & "[Auto-code];""" & Autocode & """;" & Cours & "[Etat];""1"")/NB.SI(" & Cours & ";""" & Autocode & """)"
Worksheets("Temp").Cells(Compteur, 3).FormulaLocal = "=CONCATENER(""("";NB.SI.ENS(" & Cours & "[Auto-code];""" & Autocode & """;" & Cours & "[Etat];""1"");""/"";NB.SI(" & Cours & ";""" & Autocode & """);"")"")"
End If
NextEt les lignes qui coincent :
Worksheets("Temp").Cells(Compteur, 2).FormulaLocal = "=NB.SI.ENS(" & Cours & "[Auto-code];""" & Autocode & """;" & Cours & "[Etat];""1"")/NB.SI(" & Cours & ";""" & Autocode & """)"
Worksheets("Temp").Cells(Compteur, 3).FormulaLocal = "=CONCATENER(""("";NB.SI.ENS(" & Cours & "[Auto-code];""" & Autocode & """;" & Cours & "[Etat];""1"");""/"";NB.SI(" & Cours & ";""" & Autocode & """);"")"")"Bonjour,
Avant d'attaquer le coeur de ton problème, tu pourrais alléger ton code en utilisant une structure With Worksheets("Temp")...End With, ce qui t'éviterai une répétition systématique dans le code.
Concernant ton soucis, j'imagine que c'est par ce que pour des formules Excel faisant référence à du texte, on utilise les guillemets (exemple : =NB.SI(A:A;"Texte à compter")).
Comme dans VBA tu écris déjà ta formule Excel sous forme de texte, tu utilises déjà des guillemets. La parade est d'en ajouter 4 successif pour qu'il en reste 1 dans la formule finale, ou de mettre & Chr(34) & de part et d'autre de tes variables.
Redis moi si cela fonctionne.
Salut !
Merci beaucoup, ça a bien fonctionné !
J'oubliais un guillement avant mes variables ^^
Bonne soirée et un grand merci