Bonjour à toutes et tous!
Après m'être longuement inspiré de votre forum pour me sortir des nombreux pièges d'excel par le passé (avec succès jusqu'ici grâce à vos compétences et connaissances), je me lance en m'inscrivant (enfin...).
Et voici ma première colle:
Je voulais me lancer dans la conception d'un fichier excel pour mes statistiques de golf, ainsi que pour les joueurs du club dont je m'occupe, avec des userform et plein de trucs jolis, mais j'ai rapidement vu qu'avec le peu de compétences que j'ai en VBA, je ne m'en sortirais jamais.
J'ai trouvé un fichier déjà fait, malheureusement en Anglais mais très bien, cependant il m'annonce une erreur d'exécution 13: incompatibilité de type sur la formule suivante:
Sub DoDataArray()
Dim iNoHoles As Integer
Dim x As Integer
With ThisWorkbook.Sheets("Scorecard")
vScoreData(1) = .Range("PlayDate").Text
vScoreData(2) = .Range("Golfer").Text
vScoreData(3) = .Range("Course").Text
vScoreData(4) = .Range("TruePar").Value
iNoHoles = .Range("Holes").Value
If .Range("CourseRating").Value >= 40 Then _
vScoreData(5) = .Range("CourseRating").Value * iNoHoles / 18 Else _
vScoreData(5) = .Range("CourseRating").Value * iNoHoles / 9
vScoreData(6) = .Range("SlopeRating").Value
vScoreData(7) = .Range("Score").Value
vScoreData(8) = iNoHoles
vScoreData(9) = .Range("FwayChances").Value
vScoreData(10) = .Range("DriveDistance").Value
vScoreData(11) = .Range("Fairways").Value
vScoreData(12) = .Range("Greens").Value
vScoreData(13) = .Range("BirdieDistance").Value
vScoreData(14) = .Range("ParFives").Value
vScoreData(15) = .Range("FiveScores").Value
vScoreData(16) = .Range("ParFours").Value
vScoreData(17) = .Range("FourScores").Value
vScoreData(18) = .Range("ParThrees").Value
vScoreData(19) = .Range("ThreeScores").Value
vScoreData(20) = .Range("Hardest").Value
vScoreData(21) = .Range("Medium").Value
vScoreData(22) = .Range("Easiest").Value
vScoreData(23) = .Range("BirdChances").Value
vScoreData(24) = .Range("SubPars").Value - .Range("Eagles").Value
vScoreData(25) = .Range("Eagles").Value
vScoreData(26) = .Range("Bogies").Value
vScoreData(27) = .Range("Doubles").Value
vScoreData(28) = .Range("Triples").Value
vScoreData(29) = .Range("GrassAttempts").Value
vScoreData(30) = .Range("GrassSaves").Value
vScoreData(31) = .Range("SandAttempts").Value
vScoreData(32) = .Range("SandSaves").Value
vScoreData(33) = .Range("GrassDistance").Value
vScoreData(34) = .Range("SandDistance").Value
vScoreData(35) = .Range("Putts").Value
vScoreData(36) = .Range("PuttsPerGIR").Value
vScoreData(37) = .Range("PuttLength").Value
vScoreData(38) = .Range("PuttLengthMade").Value
vScoreData(39) = .Range("ThreePutts").Value
vScoreData(40) = .Range("OnePutts").Value
vScoreData(41) = .Range("PuttChances").Value
vScoreData(42) = .Range("PuttPerform").Value
vScoreData(43) = .Range("PRatings").Value
vScoreData(44) = .Range("PRatings").Offset(1, 0).Value
vScoreData(45) = .Range("PRatings").Offset(2, 0).Value
vScoreData(46) = .Range("PRatings").Offset(3, 0).Value
vScoreData(47) = .Range("BounceBackChances").Value
vScoreData(48) = .Range("BounceBackP").Value
vScoreData(49) = .Range("BounceBackB").Value
vScoreData(50) = .Range("Penalty").Value
vScoreData(51) = .Range("ScoreType").Formula
vScoreData(52) = .Range("Conditions").Value
vScoreData(53) = .Range("Conditions").Offset(1, 0).Value
vScoreData(54) = .Range("Conditions").Offset(2, 0).Value
vScoreData(55) = .Range("Conditions").Offset(3, 0).Value
vScoreData(56) = .Range("Comments").Formula
vScoreData(57) = .Range("StartData").Formula
vScoreData(58) = .Range("StartData").Offset(0, 1).Formula
vScoreData(59) = .Range("StartData").Offset(0, 2).Formula
vScoreData(60) = .Range("StartData").Offset(0, 3).Formula
vScoreData(61) = .Range("StartData").Offset(0, 4).Formula
vScoreData(62) = .Range("StartData").Offset(0, 5).Formula
vScoreData(63) = .Range("StartData").Offset(0, 6).Formula
vScoreData(64) = .Range("StartData").Offset(0, 7).Formula
vScoreData(65) = .Range("StartData").Offset(0, 8).Formula
vScoreData(66) = .Range("StartData").Offset(0, 10).Formula
vScoreData(67) = .Range("StartData").Offset(0, 11).Formula
vScoreData(68) = .Range("StartData").Offset(0, 12).Formula
vScoreData(69) = .Range("StartData").Offset(0, 13).Formula
vScoreData(70) = .Range("StartData").Offset(0, 14).Formula
vScoreData(71) = .Range("StartData").Offset(0, 15).Formula
vScoreData(72) = .Range("StartData").Offset(0, 16).Formula
vScoreData(73) = .Range("StartData").Offset(0, 17).Formula
vScoreData(74) = .Range("StartData").Offset(0, 18).Formula
End With
End Sub
L'erreur venant de la ligne en orange.
Je ne m'y connais quasiment pas en VBA, mais en plus j'ai du mal à comprendre ce à quoi elle renvoie sous excel (car la formule =Si, alors, sinon sur excel je maîtrise en temps normal).
Je viens donc vers vous en ultime recours, sinon j'arrêterais le golf tant pis! Non je plaisante.
Je vous remercie infiniment à l'avance pour votre aide précieuse, et merci à ce forum d'exister!
A très vite j'espère.
Ludo
Après m'être longuement inspiré de votre forum pour me sortir des nombreux pièges d'excel par le passé (avec succès jusqu'ici grâce à vos compétences et connaissances), je me lance en m'inscrivant (enfin...).
Et voici ma première colle:
Je voulais me lancer dans la conception d'un fichier excel pour mes statistiques de golf, ainsi que pour les joueurs du club dont je m'occupe, avec des userform et plein de trucs jolis, mais j'ai rapidement vu qu'avec le peu de compétences que j'ai en VBA, je ne m'en sortirais jamais.
J'ai trouvé un fichier déjà fait, malheureusement en Anglais mais très bien, cependant il m'annonce une erreur d'exécution 13: incompatibilité de type sur la formule suivante:
Sub DoDataArray()
Dim iNoHoles As Integer
Dim x As Integer
With ThisWorkbook.Sheets("Scorecard")
vScoreData(1) = .Range("PlayDate").Text
vScoreData(2) = .Range("Golfer").Text
vScoreData(3) = .Range("Course").Text
vScoreData(4) = .Range("TruePar").Value
iNoHoles = .Range("Holes").Value
If .Range("CourseRating").Value >= 40 Then _
vScoreData(5) = .Range("CourseRating").Value * iNoHoles / 18 Else _
vScoreData(5) = .Range("CourseRating").Value * iNoHoles / 9
vScoreData(6) = .Range("SlopeRating").Value
vScoreData(7) = .Range("Score").Value
vScoreData(8) = iNoHoles
vScoreData(9) = .Range("FwayChances").Value
vScoreData(10) = .Range("DriveDistance").Value
vScoreData(11) = .Range("Fairways").Value
vScoreData(12) = .Range("Greens").Value
vScoreData(13) = .Range("BirdieDistance").Value
vScoreData(14) = .Range("ParFives").Value
vScoreData(15) = .Range("FiveScores").Value
vScoreData(16) = .Range("ParFours").Value
vScoreData(17) = .Range("FourScores").Value
vScoreData(18) = .Range("ParThrees").Value
vScoreData(19) = .Range("ThreeScores").Value
vScoreData(20) = .Range("Hardest").Value
vScoreData(21) = .Range("Medium").Value
vScoreData(22) = .Range("Easiest").Value
vScoreData(23) = .Range("BirdChances").Value
vScoreData(24) = .Range("SubPars").Value - .Range("Eagles").Value
vScoreData(25) = .Range("Eagles").Value
vScoreData(26) = .Range("Bogies").Value
vScoreData(27) = .Range("Doubles").Value
vScoreData(28) = .Range("Triples").Value
vScoreData(29) = .Range("GrassAttempts").Value
vScoreData(30) = .Range("GrassSaves").Value
vScoreData(31) = .Range("SandAttempts").Value
vScoreData(32) = .Range("SandSaves").Value
vScoreData(33) = .Range("GrassDistance").Value
vScoreData(34) = .Range("SandDistance").Value
vScoreData(35) = .Range("Putts").Value
vScoreData(36) = .Range("PuttsPerGIR").Value
vScoreData(37) = .Range("PuttLength").Value
vScoreData(38) = .Range("PuttLengthMade").Value
vScoreData(39) = .Range("ThreePutts").Value
vScoreData(40) = .Range("OnePutts").Value
vScoreData(41) = .Range("PuttChances").Value
vScoreData(42) = .Range("PuttPerform").Value
vScoreData(43) = .Range("PRatings").Value
vScoreData(44) = .Range("PRatings").Offset(1, 0).Value
vScoreData(45) = .Range("PRatings").Offset(2, 0).Value
vScoreData(46) = .Range("PRatings").Offset(3, 0).Value
vScoreData(47) = .Range("BounceBackChances").Value
vScoreData(48) = .Range("BounceBackP").Value
vScoreData(49) = .Range("BounceBackB").Value
vScoreData(50) = .Range("Penalty").Value
vScoreData(51) = .Range("ScoreType").Formula
vScoreData(52) = .Range("Conditions").Value
vScoreData(53) = .Range("Conditions").Offset(1, 0).Value
vScoreData(54) = .Range("Conditions").Offset(2, 0).Value
vScoreData(55) = .Range("Conditions").Offset(3, 0).Value
vScoreData(56) = .Range("Comments").Formula
vScoreData(57) = .Range("StartData").Formula
vScoreData(58) = .Range("StartData").Offset(0, 1).Formula
vScoreData(59) = .Range("StartData").Offset(0, 2).Formula
vScoreData(60) = .Range("StartData").Offset(0, 3).Formula
vScoreData(61) = .Range("StartData").Offset(0, 4).Formula
vScoreData(62) = .Range("StartData").Offset(0, 5).Formula
vScoreData(63) = .Range("StartData").Offset(0, 6).Formula
vScoreData(64) = .Range("StartData").Offset(0, 7).Formula
vScoreData(65) = .Range("StartData").Offset(0, 8).Formula
vScoreData(66) = .Range("StartData").Offset(0, 10).Formula
vScoreData(67) = .Range("StartData").Offset(0, 11).Formula
vScoreData(68) = .Range("StartData").Offset(0, 12).Formula
vScoreData(69) = .Range("StartData").Offset(0, 13).Formula
vScoreData(70) = .Range("StartData").Offset(0, 14).Formula
vScoreData(71) = .Range("StartData").Offset(0, 15).Formula
vScoreData(72) = .Range("StartData").Offset(0, 16).Formula
vScoreData(73) = .Range("StartData").Offset(0, 17).Formula
vScoreData(74) = .Range("StartData").Offset(0, 18).Formula
End With
End Sub
L'erreur venant de la ligne en orange.
Je ne m'y connais quasiment pas en VBA, mais en plus j'ai du mal à comprendre ce à quoi elle renvoie sous excel (car la formule =Si, alors, sinon sur excel je maîtrise en temps normal).
Je viens donc vers vous en ultime recours, sinon j'arrêterais le golf tant pis! Non je plaisante.
Je vous remercie infiniment à l'avance pour votre aide précieuse, et merci à ce forum d'exister!
A très vite j'espère.
Ludo
Dernière édition: