Sélection de plage avec colonne variable

Bonjour à tous,

Je suis fraîchement arrivé dans le monde du VBA il y a 1 semaine. Je me fais la main en créant un classeur excel me permettant de tenir mes comptes.

Mon problème est assez basique mais je bloque dessus

Je souhaiterais sélectionner une plage de donner et effacer le contenue. Pas de problème jusque là. Tout allait bien quand ma plage de donnée étaient fixée mais maintenant j'aimerai que cette plage de donnée soit à colonne variable et ligne fixe.

Voila mon problème, je n’arrive pas a sélectionner et effacer le contenu d'une plage de donnée avec colonne variable.

Merci par avance pour votre aide.

Bonjour,

Quel est l'intérêt de VBA ? Une fois la plage sélectionnée, n'est-il pas plus simple d'appuyer sur Suppr ?

Sur quelle base la colonne est-elle variable ?

Bref, pour moi ce n'est pas clair, le sujet mérite un classeur Excel pour l'illustrer !

Voici un fichier pour illustrer mon problème. Il y a une feuille par mois et des catégories propre a chaque mois et j'ai une dernière feuille nommée "LISTE" qui permet de récupérer les catégories de chaque mois.

Je sais pas si mes explications sont plus compréhensibles maintenant..

10test.xlsm (54.91 Ko)

Bonjour,

Te rends tu compte que, dans chacun de tes onglets, à part la feuille "LISTE", tous les tableaux ont le même nombre de colonnes?

Du coup, comment veux tu que l'on puisse t'aider...

Je sais pas si mes explications sont plus compréhensibles maintenant..

En ce qui me concerne, non. Je ne comprend ni ce que vous souhaitez réellement faire, ni où vous souhaitez le faire...

Tout simplement je souhaite sélectionner une plage de donnée avec colonne variable.

Je l'ai fait avec plage fixe grâce à la ligne de code suivante :

Worksheets("LISTE").Range("D3:D28").ClearContents

Mais cette fois je voudrais que le colonne ne soit pas D mais la variable "n" définie par le code ci-dessous :

If namesheet = "JANVIER" Then n = 4
If namesheet = "FEVRIER" Then n = 5
If namesheet = "MARS" Then n = 6
If namesheet = "AVRIL" Then n = 7
If namesheet = "MAI" Then n = 8
If namesheet = "JUIN" Then n = 9

Si tu utilises une variable, simplifie toi la vie.

Choisis la de type String et places-y la lettre de la colonne.

EDIT :

un exemple :

Dim C As String
C = "F"
Range(C & "4:" & C & "41").Select

C'est nettement plus clair !!

Essai 1 :

Sub Test()

Dim i As Integer

i = ActiveSheet.Index 'N° correspondant à la position de l'onglet
Sheets("LISTE").Range("C3:C28").Offset(0, i).ClearContents

End Sub

Essai 2 :

Sub Test()

Dim i As Integer

i = ActiveSheet.Index + 3
With Sheets("LISTE")
   .Range(.Cells(3, i), .Cells(28, i)).ClearContents
End With

End Sub

Merci beaucoup Pedro22 !!

Je n'ai pas utilisé ton code directement mais j'ai utilisé la logique et j'ai trouvé parfaitement ce qu'il me fallait !

Désolé pour la mauvaise explication...

C'était mon premier post ici et ça m'a énormément aidé !!!

Merci beaucoup Pedro22 !!

Je n'ai pas utilisé ton code directement mais j'ai utilisé la logique et j'ai trouvé parfaitement ce qu'il me fallait !

Désolé pour la mauvaise explication...

C'était mon premier post ici et ça m'a énormément aidé !!!

Si ton problème est résolu, pense à valider le sujet !

Rechercher des sujets similaires à "selection plage colonne variable"