Vous voulez ajouter une nouvelle colonne pré-remplie à votre tableau mais pas n’importe comment!?
Elle doit en effet se placer juste après la dernière colonne remplie (ou non vide si vous préférez ce terme)
En général, le code en VBA va vous retournez le numéro de la colonne seulement
Ici nous verrons comment récupérer la lettre de cette colonne
Sympa non?
Petit rappel pour activer l’onglet « Développeur »
http://excelastuces.fr/2018/11/11/comment-activer-le-mode-developpeur-programmons-en-vba/
Mise en place du code VBA
Nous ajouterons le code ci-dessous dans « ThisWorkBook »
Sub TrouverColonne() Dim MaColonne As String Dim i As Integer i = 1 ' Numéro de la ligne à vérifier MaColonne = Range("IV" & i).End(xlToLeft).Column actif = LetCol(MaColonne + 1) MsgBox ("Ligne : " & i & " Colonne : " & actif) End Sub Function LetCol(NoCol) LetCol = Split(Cells(1, NoCol).Address, "$")(1) End Function
Pas de panique! nous allons expliquer le code plus bas
Mise en place d’un bouton pour activer notre macro
Si vous nous suivez, ce ne doit pas être nouveau mais pour rappel
Onglet « DEVELOPPEUR »
« Insérer »
« Bouton (Contrôle de formulaire) »
Et vous dessinez votre bouton de contrôle ou vous le souhaitez et vous le nommerez « Dernière Colonne »
Par exemple :
Vous pouvez affecter la macro « TrouverColonne »
Pour rappel c’est la première ligne de notre code VBA et qui correspond au nom de notre Macro
Sub TrouverColonne()
Vous pouvez essayer et vous aurez déjà un résultat!
C’est bien la colonne C qui est la dernière colonne vide de la ligne 1
Explications
Pour ceux et celles qui veulent paramétrer leur code et/ou comprendre comment cela fonctionne voici quelques explications
Ce code est composé en 2 parties
Partie 1
Sub TrouverColonne() Dim MaColonne As String Dim i As Integer i = 1 ' Numéro de la ligne à vérifier MaColonne = Range("IV" & i).End(xlToLeft).Column actif = LetCol(MaColonne + 1) MsgBox ("Ligne : " & i & " Colonne : " & actif) End Sub
C’est notre code principal. Celui qui va s’enclencher lorsque vous appuierez sur votre bouton « Dernière Colonne »
i = 1
Cette variable i correspond au numéro de la ligne que vous voulez vérifier ici la nous prenons la 1
Vous pouvez changer sa valeur en mettant le numéro de la ligne que vous souhaitez
MaColonne = Range("IV" & i).End(xlToLeft).Column
C’est la variable « MaColonne » qui va retourner le numéro de la dernière colonne remplie (Pas encore celle qui est vide)
actif = LetCol(MaColonne + 1)
Cette ligne appelle notre fonction « LetCol » Partie 2
Le + 1 permet de décaler notre résultat d’une case pour ainsi trouver la dernière colonne vide
Partie 2
Function LetCol(NoCol) LetCol = Split(Cells(1, NoCol).Address, "$")(1) End Function
Vous l’aurez compris, cette partie (ou plutôt « Fonction ») va nous retourner la lettre en fonction du numéro que nous lui aurons adresser dans la Partie 1 avec la ligne
actif = LetCol(MaColonne + 1)
Voila rien de bien sorcier
Je l’utilise pour incrémenter des valeurs de rapport de données chronologiquement
Nous restons à votre écoute si vous avez des questions