OVH Cloud OVH Cloud

tableau de type personnalisé : qualificateur incorrect

6 réponses
Avatar
Le Nordiste
Bonjour tertous,

Je d=E9sire sauvegarder le contenu et l'adresse de cellules successives
dans un 'tableauSauvegarde', pour cela je d=E9finis un type personnel
'SauvegardeCellule' ;
tout =E7a dans un module

'=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D
'TYPE PERSONNEL
Type SauvegardeCellule
Adresse As String
Valeur As Variant
End Type
'---------------------------------------------------------
'VARIABLES GLOBALES
Public tableauSauvegarde() As SauvegardeCellule
'=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D

Pour tester je fais simplement le code suivant dans un module de
feuille :
MsgBox tableauSauvegarde.Valeur(0)

Et Excel me r=E9pond par un message d'erreur : "Qualificateur incorrect"

O=F9 est mon erreur ?


Remerciements anticip=E9s, cordialement,
Le Nordiste

6 réponses

Avatar
Ardus Petus
Essaie plutôt:
MsgBox tableauSauvegarde(0).Valeur

Cordialement,
--
AP

"Le Nordiste" a écrit dans le message de
news:
Bonjour tertous,

Je désire sauvegarder le contenu et l'adresse de cellules successives
dans un 'tableauSauvegarde', pour cela je définis un type personnel
'SauvegardeCellule' ;
tout ça dans un module

'============================= 'TYPE PERSONNEL
Type SauvegardeCellule
Adresse As String
Valeur As Variant
End Type
'---------------------------------------------------------
'VARIABLES GLOBALES
Public tableauSauvegarde() As SauvegardeCellule
'=============================
Pour tester je fais simplement le code suivant dans un module de
feuille :
MsgBox tableauSauvegarde.Valeur(0)

Et Excel me répond par un message d'erreur : "Qualificateur incorrect"

Où est mon erreur ?


Remerciements anticipés, cordialement,
Le Nordiste
Avatar
Le Nordiste
Bonjour Ardus Petus

Le Pb etait bien tapi dans les parenthèses, merci.
Mais maintenant j'ai le message ' l'indice n'appartient pas à la
sélection'.
J'ai essayé avec 0,1 ou 2 et même avec le compteur ad'hoc.

Le Nordiste.
Avatar
Ardus Petus
Comment est-ce que ton tableau est initialisé

Cordialement
--
AP
(né à Gravelines)

"Le Nordiste" a écrit dans le message de
news:

Bonjour Ardus Petus

Le Pb etait bien tapi dans les parenthèses, merci.
Mais maintenant j'ai le message ' l'indice n'appartient pas à la
sélection'.
J'ai essayé avec 0,1 ou 2 et même avec le compteur ad'hoc.

Le Nordiste.
Avatar
Le Nordiste
Re AP(né à Gravelines),

La déclaration se fait dans le module comme ci-dessus décrit
L'initialisation dans le module de la feuille dés la première
sélection.
Je pars du principe qu'à l'ouverture du fichier il faudra bien aller
à une nouvelle sélection

'======================== ========================
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If IsEmpty(tableauSauvegarde(iCptrSauvegarde).Valeur) Then
'INITIALISER LE TABLEAU DE SAUVEGARDE
ReDim SelectionSauvegarde(iDimensionSauvegarde)
tableauSauvegarde(iCptrSauvegarde).Valeur = Target.Value
tableauSauvegarde(iCptrSauvegarde).Adresse = Target.Address
MsgTemp tableauSauvegarde(iCptrSauvegarde).Valeur & " @ " _
& tableauSauvegarde(iCptrSauvegarde).Adresse, 1
End If
'======================== ========================


Hors du propos je suis originaire de Wimereux,
donc pour les connaisseurs du Pas de Calais, mais vu d'ici,
région parisiennne, passé Creil c'est le Nord.
Qu'ils y restent dans leur Sud de l'Oise...
Avatar
Ardus Petus
Si tu ReDim ton tableau à chaque fois que tu y ajoutes qqchose, tu perds
toutes les anciennes valeurs!

--
AP

"Le Nordiste" a écrit dans le message de
news:
Re AP(né à Gravelines),

La déclaration se fait dans le module comme ci-dessus décrit
L'initialisation dans le module de la feuille dés la première
sélection.
Je pars du principe qu'à l'ouverture du fichier il faudra bien aller
à une nouvelle sélection

'=============================================== Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If IsEmpty(tableauSauvegarde(iCptrSauvegarde).Valeur) Then
'INITIALISER LE TABLEAU DE SAUVEGARDE
ReDim SelectionSauvegarde(iDimensionSauvegarde)
tableauSauvegarde(iCptrSauvegarde).Valeur = Target.Value
tableauSauvegarde(iCptrSauvegarde).Adresse = Target.Address
MsgTemp tableauSauvegarde(iCptrSauvegarde).Valeur & " @ " _
& tableauSauvegarde(iCptrSauvegarde).Adresse, 1
End If
'===============================================

Hors du propos je suis originaire de Wimereux,
donc pour les connaisseurs du Pas de Calais, mais vu d'ici,
région parisiennne, passé Creil c'est le Nord.
Qu'ils y restent dans leur Sud de l'Oise...
Avatar
Le Nordiste
C'est pour ça que j'ai la condition IsEmpty qui encadre le ReDim,
mais déja pour cette condition j'ai le message :' n'appartient pas
.....'
alors que je pense que la première occurence du tableau est vide.

If IsEmpty(tableauSauvegarde(iCptrSauvegarde).Valeur) Then
'INITIALISER LE TABLEAU DE SAUVEGARDE
ReDim SelectionSauvegarde(iDimensionSauvegarde)
tableauSauvegarde(iCptrSauvegarde).Valeur = Target.Value

End If


Le Nordiste