Modification d'une valeur d'un tableau (Excel VBA)

Bonjour à vous tous.

En révisant le cours Excel-Pratique, la partie 10. Tableau / tableau,

en testant le code suivant (dans ENREGISTRER DES DONNéES DANS UN TABLEAU).

Sub exemple()

Dim tableau(10), i As Integer 'Enregistrement des valeurs dans le tableau

For i = 0 To 10

tableau(i) = Range("A" & i + 2) Next

'Affichage 1 MsgBox tableau(3) 'Renvoie : 08.03.2023

'Modification de l'une des valeurs

tableau(3) = Year(tableau(3))

'Affichage 2 MsgBox tableau(3) 'Renvoie : 2023

End Sub

Le systeme bug et me renvoit ceci.

run-time error '13'

type mismatch

Comment ca se fait.

Quelqu'n peut-il m'expliquer s'il vous plait? .

Merci beaucoup.

Bonsoir,

il est préférable de typer les données, dans DIm Tableau(10), essayez en ajoutant le typage standard "As Variant", afin de dire à VBA que le tableau peut contenir toute sortes de choses... Sans garantie. Une chose "est sur" c'est que ce message est souvent du à un problème de type de variable. Bon normalement en l'absence d'un typage précis, VBA donne le Variant à la variable...

@ bientôt

LouReeD

Merci LouReed.

bonjour Laudelout, salut LouReeD,

un essai

Sub exemple()

     Dim tableau(10), i As Integer           'Enregistrement des valeurs dans le tableau

     For i = 0 To 10
          tableau(i) = Range("A" & i + 2).Value2
     Next

     If IsNumeric(tableau(3)) And Len(tableau(3)) > 0 Then tableau(3) = Year(tableau(3)) Else MsgBox "problème" & vbLf & tableau(3)

End Sub

Merci BsAIv.

Bonjour à vous tous, spécialement ceux qui m'ont donnné des suggestions.

Pardonnez-moi, j'ai omis un détail qui peut être intéressant.

Ce qui remplit le tableau vient de la sheet1, cellules A2 à A10.

Cellules non formatées dont le contenu sont des dates du genre 01.02.2023.

Bien à vous

Rebonjour à tous,

Il m'est venu à l'idée changer, dans les cellules A 1 à A12, les "." par des " /" comme c'est le plus souvent la forme d'une date.

Ce qui donne 08/03/2023 au lieu de 08.03.2023. Et sans rien modifier dans le code, cela fonctionne.

Encore une fois merci à vous.

Et je me demandais, si une correction dans le cours est possible.

re,

votre 08.03.2023 est un texte pas une date.

Si vous élargez la colonne, la cellule s'aligne à gauche.

Plus tard, quand vous remplacez le "." par "/", la cellule s'alignera à droite, parce qu'Excel pense à ce moment que c'est une date.

Avec ma macro, je suppose que vous recevez un msgbox ?

Bonjour,

On était bien sur un problème de type, mais au niveau de la fonction Year qui attend une donnée type Date, et vous lui donniez du texte.

Je ne pense pas que le cours soit à modifier, il faut apprendre à comprendre ce que l'on demande à VBA.

@ bientôt

LouReeD

Grands mercis à vous tous pour vos commentaires.

Je suis très content du cours qui donne beaucoup d'explications,

cependant ce cours devrait mentionner cette difference entre "." et "/" dans les dates.

L'élève risque d'être déconcerté par le bug reçu. L'élève n'est pas supposé chercher l'erreur,il est novice.

Bien à vous tous.

Rechercher des sujets similaires à "modification valeur tableau vba"