Debogage VBA

Bonjour à tous,

j'essaie de coller un ensemble de lignes à partir d'une colonne spécifique. Seulement quand je modifie la colonne à partir de laquelle je veux que le collage se réalise, une seule ligne est copiée (la dernière ligne).

Après plusieurs recherches et n'arrivant pas à trouver d'où vient l'anomalie, je préfère me tourner vers vous. Je précise que je suis débutant en VBA.

Je vous remercie pour votre aide.

11paste.xlsm (16.47 Ko)

bonjour

en plus de 20 ans de tableur pour des entreprises diverses, je n'ai jamais fait de VBA, ni eu beesoin.

à quoi sert ton fichier ?

à quoi sert ton code ?

à te relire

Bonjour jmd,

Mon fichier sert à agencer des lignes pour pouvoir faire des calculs.

Le code sert à qualifier les lignes qui sont en fait des opérations.

Le problème c'est que j'arrive à le faire avec des formules sans problème mais comme je travaille sur des dizaines milliers de lignes j'ai commencé à avoir des problèmes de performances (la barre du bas : calcul : (4 processeur (s)) X %) que la programmation VBA me permet d'éviter...

J'espère avoir répondu à tes interrogations.

re

je n'ai rien compris à l'utilité de ton fichier

je connais les lignes de pêche en mer, et les lignes de prod chez Evian ? ? ?

mais si tu as des millions de lignes dans Excel (ou toute autre base de données) tu dois regarder Power BI Desktop gratuit

il permet tous les retraitement de lignes, tous les calculs et toutes les courbes,

l'actualisation des données prend quelques secondes

faire "tutorial power bi desktop" dans Google

amitiés

Bonjour,

Un exemple simple à partir de ton exemple simple !...

Réalisé avec Récupérer et transformer (Power Query) natif sous Excel 2016.

Pas de VBA pour la restitution (requête), simplement pour l'actualisation.

Maintenant, il faudrait préciser ce que tu veux faire.

Tu n'as certainement pas besoin d'utiliser Power BI.

A te relire.

Cdlt.

8cdavid.xlsm (31.72 Ko)

Bonjour, Salut à tous !

Si tu restes sur de VBA, il serait bon d'adopter des méthodes un peu plus performantes que ton code !

Sub NoPaste()
    Dim jl, i&, n&, Tbl()
    With Worksheets("JOURNAL")
        n = .Cells(.Rows.Count, 1).End(xlUp).Row
        jl = .Range("A4:C" & n).Value2
    End With
    n = 1
    For i = 1 To UBound(jl)
        If jl(i, 3) = "AG" Then
            ReDim Preserve Tbl(2, n)
            Tbl(0, n) = jl(i, 1): Tbl(1, n) = jl(i, 2): n = n + 1
        End If
    Next i
    Tbl(0, 0) = "numero": Tbl(1, 0) = "date": Tbl(2, 0) = "flux"
    With Worksheets("Feuil1")
        .Range("A1").CurrentRegion.ClearContents
        With .Range("A1").Resize(n, 3)
            .Value = WorksheetFunction.Transpose(Tbl)
            .Columns(2).NumberFormat = "dd/mm/yyyy"
            .Columns(3).Offset(1).Resize(n - 1).Value = "AG"
        End With
    End With
End Sub

NB- Ceci peut encore certainement être amélioré... mais la méthode logique qui pourrait être la plus performante devrait être le filtre avancé, si la structure de tes données réelles concorde avec ton exemple.

Cordialement.

Re- bonjour à tous,

@jmd, @jean-Eric, je vous remercie pour vos informations. Je vais me pencher sur l'apprentissage de power query... Seulement je souhaite tout de même avoir un très bon niveau en VBA.

@MFerrand merci beaucoup pour ton code je vais l'étudier pour m'améliorer!

re à tous

Jean-Eric,

on a tous besoin de Power BI

il suffit de l'essayer, il y a une version Desktop qui est gratuite

depuis que je l'ai testé, je fais TOUTES mes courbes dans PBI, et jamais plus dans Excel

amitiés et bonne journée à tous

Rechercher des sujets similaires à "debogage vba"