Renseigner tableau depuis un classeur

Bonjour a tous,

Je suis un gros debutant en programmation (même si j'en ai fait 2 ans)

J'ai quelques base mais la je seche comme a la bonne époque :p

J'ai un un fichier excel feuille TEMP avec ceci dedans :

Date opération;Date valeur;libellé;Débit;Crédit;

01/09/2017;01/09/2017;vir ;; 250;

01/09/2017;01/09/2017;vir b;; 250;

01/09/2017;01/09/2017;chq 2382809;-30;

04/09/2017;04/09/2017;chq 2382812;-30;

05/09/2017;05/09/2017;vir c;; 475,64;

06/09/2017;06/09/2017;chq 2382815;-56,73;

06/09/2017;06/09/2017;chq 2382816;-32,48;

06/09/2017;06/09/2017;prlv;-1,9;

07/09/2017;07/09/2017;vir c;; 91,86;

07/09/2017;07/09/2017;chq 2382813;-9;

08/09/2017;08/09/2017;chq 2382814;-30;

Je voudrais via le code ci-dessous remplir un tableau a plusieurs dimensions x lignes pour 4 colonnes

Public compteur As Integer
Public NbrLigne As Integer
Sub extractionMots()
    Dim Tableau
    ReDim Tableau(28, 3)
    Dim i As Integer
    Dim ligne As Integer
    Dim col As Integer
    Dim rows As Integer

 rows = 1
 col = 0

    'boucle sur le tableau pour visualiser le résultat
    For i = 0 To UBound(Tableau)

        For col = 0 To 3
            Tableau(i, col) = Split(Sheets("TEMP").Cells(rows, 1), ";")

        Next col

        rows = rows + 1

        MsgBox Tableau(i, col)

    Next i
End Sub

Private Sub CommandButton1_Click()

ligne = ligne + 1
TextBox1.Text = ligne

If ligne = NbrLigne Then

CommandButton1.Enabled = False

End If

extractionMots

End Sub

Private Sub UserForm_Initialize()

NbrLigne = Application.CountA(Sheets("TEMP").Range("A:A"))

ligne = 1
TextBox1.Text = ligne
End Sub

J'y vais vraiment par étape car le but final c'est d'importer un fichier excel de de faire mes comptes avec.

Le fichier boucle sur le fichier ligne par ligne et a chaque ligne j'interagi pour additionner des valeurs en fonction d'une catégorie.

Par exemple la ligne suivant apparait

01/09/2017;01/09/2017;vir ;; 250;

je clique sur mon fichier excel dans la catégorie course et cela va s'additionner... mais j'en suis encore loin

Donc concretement comment bien remplir mon tableau a plusieurs entrées?

Comment puis-je vérifier que les entrées sont correctes?

La actuellement j'ai un message d'erreur 'Lindice n'appartient pas a la selection"..

Merci

Bonsoir Borito

Peux-tu envoyer un fichier exemple pour que nous puissions t'aider plus facilement ??

Merci

Bonsoir Patty

Voici l'ebauche :p

MErci de votre aide

7test.xlsm (18.14 Ko)

Bonsoir

Voilà déjà pour mettre en colonnes

Est-ce suffisant ?

Je ne comprends pas ton userform, j'ai laissé tomber

Essaie de te souvenir des 2 ans que tu as fait, et cherche bien sur le Net, on trouve des tas de choses

Bon courage

Merci

Mon userform ne sert à rien j'ai essayé d afficher un compteur quand je click sur le bouton.

Je veux juste essayer de split la 2eme ligne par exemple et de le mettre dans un tableau a 4 colonnes.

Et ensuite pouvoir l utiliser par la suite. Dans l immédiat l afficher dans un message un truc du genre

Bonjour

Voilà ton extraction pour la première ligne en cliquant sur ton bouton

Sub extractionMots()
Dim Tableau
ReDim Tableau(28, 3)
Dim i As Integer
Dim rg As Integer
rg = 1
col = 0
Tableau = Split(Sheets("TEMP").Cells(rg, 1), ";")
    'boucle sur le tableau pour visualiser le résultat

    For i = 0 To UBound(Tableau) - 1
        MsgBox Tableau(i)
    Next i
End Sub

Vois pour continuer en fonction de ce que tu veux vraiment

A +

Re

Tu as été sage, voilà pour toutes tes lignes

Sub extractionMots()
Dim Tableau
ReDim Tableau(28, 3)
Dim i, lig As Integer
For lig = 1 To NbrLigne
    Tableau = Split(Sheets("TEMP").Cells(lig, 1), ";")
    'boucle sur le tableau pour visualiser le résultat

    For i = 0 To UBound(Tableau) - 1
        MsgBox Tableau(i)
    Next i
Next
End Sub

A +

Merci de ton aide

Entre temps j'ai avancé :

sub ExempleTableau_MultiDimensionnel()
    Dim i As Integer, j As Integer
    'Définit le tableau à 2 dimensions ainsi que leur taille.
    Dim VarTab(0 To 12, 0 To 5)

Erase VarTab

    For i = 1 To UBound(VarTab, 1) 'boucle sur la 1ere dimension
        For j = 1 To UBound(VarTab, 2) 'boucle sur la 2eme dimension
            'Alimente les éléments du tableaux
            VarTab(i, j) = Sheets("TEMP").Cells(i, j).Value
            'Lit les éléments du tableau
            Debug.Print VarTab(i, j)
        Next j
    Next i
End Sub

Ceci a l'air de fonctionner maintenant je dois l'exploiter en allant chercher les infos dans le tableau.

Je reviens des que je seche

D'ailleurs petite question, pourquoi si je met ceci pour optimiser la longueur de mon tableau, ça ne fonctionne pas?

NbrLigne = Application.CountA(Sheets("TEMP").Range("A:A"))

  Dim VarTab(0 To NbrLigne, 0 To 5)

Bonjour,

Pouvez vous m'aider via le bouton Lire a afficher les valeurs enregistrer dans le tableau a 2 dimensions VarTab ?

Je ne vois pas comment faire, cela ne fonctionne pas.

Merci

Bonjour borito

Tu veux lire ton tableau sous quelle forme ??

D'autre part, je ne vois pas l'intérêt puisque le contenu du tableau correspond au contenu de ta feuille TEMP, qui est très facile à lire!! Pourquoi s'embêter ??

Je nage

Bye

c'est peut etre pas la bonne méthode effectivement.

Mon but serait d'afficher un peu comme dans le fichier ci-joint, la première ligne de mon tableau Vartab dans une fenêtre glissante qui contiendrait des label avec le débit ou crédit.

Je clique sur cette ligne pour ajouter cette valeur a mon tableau récapitulatif de compte en banque.

Exemple ma fenêtre affiche chèque 50e par exemple, je clique dessus pour la sélectionner, ensuite je vais sur ma feuille de compte et je clique sur par exemple essence en janvier 2017 qui contenait déjà 40€, cela devient 90€

Merci de ton aide

6userform-modal.zip (12.29 Ko)

Re

Tu n'as pas l'impression que tu t'es trompé de fichier ??

A+

non c'est pour montrer la fenetre flottante, mais dedans je vais mettre des labels pour afficher la premiere ligne de mon tableau

Re

Voici un fichier qui récupère ta liste d'opérations et qui te permet de choisir une ligne pour la sélectionner

Après si tu veux augmenter le débit ou le crédit d'un montant choisi on peut faire deux textbox pour modifier directement la ligne ???

Je te laisse voir, car moi je ne flotte pas, je coule direct

Adresse-toi aux bons nageurs !!!

Désolée

Bonne soirée

Merci patty pour ton aide et ton investissement.

Ton code me sera precieux, mais je veux vraiment pour ma culture personnelle , essayé de comprendre et savoir reutiliser le tableau a dimension.

Comment faire pour interroger une valeur contenu en mémoire?

Par exemple

MsgBox (VarTab(2, 2))

Je devrais avoir la deuxième ligne et la deuxième colonne , mais la messageBox m'affiche rien

Je pense que c'est parce que la variable varTab est appelé depuis une autre fonction (. La variable varTab ne doit pas être correctement déclarée.

J'avance a petite touche faute de temps, j’espère que tu comprendras ma demande même si tu ne ferai pas comme cela

Bonjour Borito

Tu fais exactement ce qu'il faut et chez moi cela marche .VARTAB est bien déclaré Public en début de module

Je t'ai rajouté

MsgBox (VarTab(2, 2))

dans le bouton quitter userform2, juste pour tester

J'ai bien la valeur de la ligne 2 colonne 2 qui apparaît

Vois toi-même:

A+

Rechercher des sujets similaires à "renseigner tableau classeur"