Sélection de données variables

Bonjour tout le monde,

Je cherche une solution pour le problème suivant :

dans une premiere feuille "balance", j'ai

- en colonne D des numéros de comptes

- en colonne E le libellé du compte correspondant

- en colonne F le montant au débit

- en colonne G le montant au crédit

Dans cette feuille, j'ai des comptes banques dont le numéro commence par 512xxxxx (mais le xxxx peut changer en fonction du dossier sur lequel je travaille).

Sur une autre feuille, je cherche à récupérer :

- en colonne A les numéros de compte banque que je dispose dans la première feuille

- en colonne B le libellé correspondant (que j'arrive à déterminer grâce à une recherchev)

- en colonne C le montant ( que j'arrive aussi à déterminer)

Comment récupérer automatiquement en colonne A de la deuxieme feuille, l'ensemble des comptes banques existants dans la première feuille, sachant qu'ils commenceront toujours par 512xxxxx et qu'ils auront par ailleurs toujours le même nombre de caractère (8 en l'espèce) ?

Merci !

bonjour HYDRA09

bienvenue au forum

un fichier exemple( en enlevant les données non transmissible) serais le bienvenue pour votre aide

a vous relire

Ci-joint un fichier d'exemple.

La colonne que je cherche à complèter se trouve sur la feuille 2, sous n° de compte, et il faut rechercher tous les numéros de compte banque.

Je rappelle que le n° de compte dans la première feuille sont différents à chaque dossier. En revanche ils feront toujours 8 caractères et commenceront toujours par 512.

Merci !

12exemple.xlsx (9.12 Ko)

Bonjour, essayez ceci :

Option Base 1
Sub macro()
    Dim a, c(), Co, li
    Dim i%, K%, n%
    Set a = Feuil1.UsedRange
    li = a.Rows.Count
    Co = a.Columns.Count
    n = 0

    ReDim c(li, Co)

    For i = 2 To li
        If Left(a(i, 1), 3) = "512" And Len(a(i, 1)) = 8 Then
            n = n + 1
            For K = 1 To Co: c(n, K) = a(i, K)
            Next
        End If
    Next

    With Feuil2
        .Cells.Delete
        .[A1:D1] = Feuil1.[A1:D1].Value
        .[a2].Resize(UBound(c), 4) = c
        .Activate
    End With
Set a = Nothing
End Sub

OK je vais essayer.

Ma feuille 1 s'appelle Balance N. Comment la reference-t-on ? Par exemple pour " set a=feuil1.usedrange "

Car si je modifie "feuil1" par "balance N" j'ai un message d'erreur

Option Base 1
Sub macro()
    Dim a, c(), Co, li
    Dim i%, K%, n%
    Set a = sheets("Balance N").UsedRange
    li = a.Rows.Count
    Co = a.Columns.Count
    n = 0

    ReDim c(li, Co)

    For i = 2 To li
        If Left(a(i, 1), 3) = "512" And Len(a(i, 1)) = 8 Then
            n = n + 1
            For K = 1 To Co: c(n, K) = a(i, K)
            Next
        End If
    Next

    With Feuil2
        .Cells.Delete
        .[A1:D1] = Feuil1.[A1:D1].Value
        .[a2].Resize(UBound(c), 4) = c
        .Activate
    End With
Set a = Nothing
End Sub

Merci !

bon je débute et j'ai du mal à adapter le code à mon fichier excel.

D'après ce que je comprends, le premier paragraphe définit des variables.

a = toutes les cellules utilisées dans la feuille 1

li = le nombre de ligne

co = nombre de colonnes

que veut dire n = 0 ainsi que i%, k% et n% ?

Pourrais-je avoir plus d'explications sur

 For i = 2 To li
        If Left(a(i, 1), 3) = "512" And Len(a(i, 1)) = 8 Then
            n = n + 1
            For K = 1 To Co: c(n, K) = a(i, K)
            Next
        End If
    Next

merci !

Rechercher des sujets similaires à "selection donnees variables"