IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Pb pour conserver les données de mon tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 22
    Par défaut Pb pour conserver les données de mon tableau
    Bonjour le forum,
    J'essaie de réaliser un formulaire (en pj). Dans la page "correctifs", je souhaiterais que lorsque je sélectionne un produit, il alimente un tableau, puis il incrémente le tableau à chaque fois que je clique sur "Ajouter". LE tableau est déclaré en haut du module, et je le redimensionne à chaque fois que je cique sur "ajouter".
    Sauf que lorsque je lui dis "Redim Preserve" de mon tableau, il m'affiche "erreur 9...". Lorsque je mets "Redim" uniquement, ça fonctionne, mais bien sûr, il ne conserve que les dernière données ajoutées au tableau.
    Si vous téléchargez le fichier, vous verrez que c'est un peu le bazar dans mes macros, mais je fais du mieux que je peux pour que cela fonctionne...
    A bientôt et merci par avance.
    20140904_FicheIntervention_forum.xlsm

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 242
    Par défaut
    Bonjour,
    Je n'ai pas consulté ton fichier joint, mais l'aide de l'instruction Redim précise :
    [...] Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner que la dernière dimension du tableau. Vous ne pouvez en aucun cas modifier le nombre de dimensions. [...]

  3. #3
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour le fil, bonjour le forum,

    Super le fichier joint où il faut commencer par bidouiller pour l'utiliser. Je n'ai toujours pas réussi à avoir le bouton Ajouter mais bon...
    D'abord quand tu redimensionnes un tableau tu ne peux que redimensionner la dernière entrée et toi tu essaie de redimensionner la première... Comme le signale Zenpbb.
    Ensuite, voilà comment je procèderais :
    • déclarer dans un module standard (Module1 par exemple) les deux variables publiques I et TBLO() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public I As Integer
    Public TBLO() As Variant
    Pour la variable TBLO j'ai mis de type Variant, tu remplaceras si c'est pas ça...
    ensuite dans le bouton Ajouter le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
    I = UBound(TBLO, 2) 'définit la variable I (génère un erreur si le tableau est vide)
    If Err <> 0 Then Err.Clear 'si une erreur a été générée, efface l'erreur
    On Error GoTo 0 'annule la gestion des erreurs
    I = I + 1 'incrémente I
    ReDim Preserve TBLO(1 To 2, 1 To I) 'redimensione le tableau TBLO
    TBLO(1, I) = Me.Cbo_Correctifs_Produit.Value
    TBLO(2, I) = Me.Txt_Correctifs_Quantite.Value
    Non testé...

  4. #4
    Membre averti
    Femme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 22
    Par défaut
    Bonjour Thauthème et merci pour ta réponse,
    J'ai fait comme tu me l'as dit : j'ai défini mes variables dans un module standard (et j'ai aussi essayé dans le module de l'Usf), et j'ai également placé ton bout de code dans le bouton "ajouter", mais ça bloque toujours : erreur 9, l'indice n'appartient pas à la sélection.
    Par contre, c'est bizarre que tu ne voies pas le bouton "Ajouter". Normalement, dans la deuxième page du multipage, il faudrait que tu cliques au moins sur "compartimentage" ou sur "désenfumage", et au bout d'un moment, tu devrais tomber sur la page "correctifs", dans laquelle se trouve le bouton "Ajouter".
    Bon, sinon, ce n'est pas grave, je me débrouillerai sans tableau, et je prendrai le temps de me replonger dans les tutos très prochainement.
    Je te remercie très sincèrement de ton aide.
    A+

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/07/2013, 21h19
  2. analyser les données de mon tableau
    Par leila42 dans le forum Excel
    Réponses: 7
    Dernier message: 14/12/2012, 20h18
  3. Conserver les données d'un tableau après fermeture d'un classeur
    Par steph6499 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/02/2011, 10h41
  4. Réponses: 2
    Dernier message: 15/09/2008, 23h12
  5. Boucles pour récuperer les données d'un tableau dans un autre.
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/09/2007, 21h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo