Sélection d'un tableau de taille variable

Bonjour à tous,

Je sais qu'un sujet équivalent a déjà traité il y a quelque temps déjà mais l'ayant déjà parcouru, je n'ai pas réussi à résoudre mon problème pour autant.

Je m'explique.

Dans un fichier Excel 2010, j'ai une base de données qui grandie avec le temps et qui me permet d'insérer les entrées et sorties d'argent de mon compte bancaire. en d'autres termes c'est mon petit logiciel de gestion de mes comptes personnalisé que je me construit.

Et pour agrandir ma base de données je viens copier la première ligne de mon tableau et l'insérer juste au dessus de cette dernière. Je répète cette action en fonction de la valeur d'une cellule de mon fichier Excel.

Cela fonctionne parfaitement.

Mais j'ai besoin de votre aide pour la tâche suivante:

Je voudrais sélectionner le tableau créé de cette manière mais seulement des colonnes A à D.

C'est à dire que je me retrouverai avec un Range ("A? : D?").select

Et tout ceci pour supprimer les éléments présents dans le tableau sélectionné.

Voici le code complet mais qui ne fonctionne pas juste après la boucle For :S!!

Sub Insertion()

    Dim a As Integer
    Dim b As Integer

    Cells.Find("Nb de Lignes à insérer").Select
    ActiveCell.Range("a1").Offset(0, 1).Activate
    a = ActiveCell.Value
    MsgBox "La valeur de la ligne de la cellule active est" & " " & a

   'On cherche et sélectionne dans la feuille une cellule nommée "Date"
    Cells.Find("Date").Select
    ActiveCell.Range("a1").Offset(1, 0).Activate
    b = ActiveCell.Row
    MsgBox "Le n° de ligne de la cellule active est" & " " & b

    For i = 1 To a
           Rows(b).Select
           Selection.Copy
           Selection.Insert Shift:=xlDown
           Application.CutCopyMode = False
    Next i

    Cells.Find("Crédit Euro").Select
    ActiveCell.Range("a1").Offset(a, 0).Activate
    c = ActiveCell.Row
    MsgBox "Le n° de ligne de la cellule active est" & " " & d

    Range("A&a:D&d").ClearContents

    'Range("A1").Select

End Sub

Pourriez-vous m'aider je vous remercie infiniment.

Voici en pièce jointe le fichier exemple pour que vous compreniez mieux.

je suis un newbie en VBA et j'aimerai apprendre davantage à m'en servir

33exemple-3.xlsm (240.79 Ko)

Bonjour

Remplaces ta ma macro actuelle par celle-ci ( en surligné les modifications)

Sub Insertion()

    Dim a As Integer
    Dim b As Integer

    Cells.Find("Nb de Lignes à insérer").Select
    ActiveCell.Range("a1").Offset(0, 1).Activate
    a = ActiveCell.Value
    MsgBox "La valeur de la ligne de la cellule active est" & " " & a

   'On cherche et sélectionne dans la feuille une cellule nommée "Date"
    Cells.Find("Date").Select
    ActiveCell.Range("a1").Offset(1, 0).Activate
    b = ActiveCell.Row
    MsgBox "Le n° de ligne de la cellule active est" & " " & b

    For i = 1 To a
           Rows(b).Select
           Selection.Copy
           Selection.Insert Shift:=xlDown
           Application.CutCopyMode = False
    Next i

    Cells.Find("Crédit Euro").Select
    ActiveCell.Range("a1").Offset(a, 0).Activate
    c = ActiveCell.Row
    MsgBox "Le n° de ligne de la cellule active est" & " " & c

    Range("A" & b & ":D" & c).Select
    Selection.ClearContents

    'Range("A1").Select

End Sub

Super je vais tester ca et je te tiens au courant

Merci


Banzai64, je viens d'essayer ta solution mais au moment de compiler ce message apparaît: Attendu: de séparateur de liste ou )

Qu'est ce que c'est en fait?

Ca y est je viens de percérer davantage ^^ et j'ai trouvé mon erreur.

Banzai64 tu m'as bien aidé mais au lieu d'écrire :

Range("A" & b & ":D" & c).Select
    Selection.ClearContents

Il fallait en fait écrire:

Range("A" & b , "D" & c).Select
    Selection.ClearContents

Voilou je te remercie infiniment pour m'avoir aiguiller vers la solution

Amicalement

Bonjour

J'ai des doutes dans ce que tu dis

Moi j'ai un plantage avec la syntaxe que tu proposes

mais bon si cela fonctionne, je ne vais pas être plus royaliste que le roi

Ah c'est byzarre!

Tu travailles sur quelle version de VBA? Excel 2010? 2007?

Je suis sur VBA 2010 personnellement

Bonjour

Testé sur 2010

Petite rectification

Ta syntaxe fonctionne, lors de l'essai je n'avais pas enlevé les : (deux-points)

Mais je persiste à dire que la syntaxe que je t'ai proposée fonctionne

Voici les 2 tests (pour moi équivalents)

Sub test()
Dim B As Integer
Dim C As Integer

  B = 2
  C = 5
  Range("A" & B & ":D" & C).Select
  Selection.ClearContents
End Sub

Sub testBis()
Dim B As Integer
Dim C As Integer

  B = 2
  C = 5
  Range("A" & B, "D" & C).Select
  Selection.ClearContents
End Sub

En effet tu as également raison, j'ai mal positionné l'apostrophe juste avant les ":".

Merci beaucoup pour m'avoir éclairé sur le problème.

Cordialement

Rechercher des sujets similaires à "selection tableau taille variable"