Microsoft 365 Etendre un Tableau avec valeurs sélectionnées (ajusté aux colonnes)

  • Initiateur de la discussion Initiateur de la discussion Yoyo60
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Yoyo60

XLDnaute Junior
Bonjour à toutes et à tous,

Je rencontre un nouveau problème pour la construction de mon fichier.

Je cherche depuis ce matin (mes essais ont été très très nombreux) et j'approche du but mais je rencontre un problème pour déterminer les colonnes....

Actuellement, je triche en indiquant dans le code, la valeur de la dernière colonne (ligne en commentaire fonctionnelle mais "R" est précisé)

Je n'arrive pas à adapter le code pour que la recherche de la colonne se face directement et s'ajuste (mes tableaux n'auront pas tous le même nombre de colonne).

Auriez vous une idée SVP ?

Merci d'avance

Yoyo
 

Pièces jointes

Bonjour Yoyo,
La dernière colonne peut être calculée avec :
VB:
DerColonne = Cells(DerLigne, Columns.Count).End(xlToLeft).Column
ce qui donne 18 dans votre fichier, soit la colonne R.
Bonjour sylvanu,

Oui, j'ai indiqué cette ligne en dessous des variables mais je ne comprend pas pourquoi je ne peux pas la réutiliser sur la ligne suivante :

VB:
Selection.AutoFill Destination:=Range("G" & DerLigne & DerColonne), Type:=xlFillDefault
 
Oui, mais ça c'est faux : Range("G" & DerLigne & DerColonne)
car cela donne Range("G1218") car DerColonne est un nombre.
Il vous faut faire : Range(Cells(PremLigne, PremColonne), Cells(DerLigne, DerColonne)).Select
Ce qui donne Range("G9:R12")
 
Essayez :
Code:
Sub Test()

Dim DerLigne As Integer
Dim DerLigne2 As Integer
Dim DerColonne As Integer

DerLigne = Range("G" & Rows.Count).End(xlUp).Row
DerLigne2 = DerLigne + 1
DerColonne = Cells(DerLigne, Columns.Count).End(xlToLeft).Column
Range("G" & DerLigne & ":R" & DerLigne).Select

Selection.AutoFill Destination:=Range(Cells(DerLigne, "G"), Cells(DerLigne2, DerColonne)), Type:=xlFillDefault

Range("A1").Select
Range("G" & DerLigne + 1 & ":R" & DerLigne + 1).Select
Selection.ClearContents
Range("A1").Select
End Sub
 
Essayez :
Code:
Sub Test()

Dim DerLigne As Integer
Dim DerLigne2 As Integer
Dim DerColonne As Integer

DerLigne = Range("G" & Rows.Count).End(xlUp).Row
DerLigne2 = DerLigne + 1
DerColonne = Cells(DerLigne, Columns.Count).End(xlToLeft).Column
Range("G" & DerLigne & ":R" & DerLigne).Select

Selection.AutoFill Destination:=Range(Cells(DerLigne, "G"), Cells(DerLigne2, DerColonne)), Type:=xlFillDefault

Range("A1").Select
Range("G" & DerLigne + 1 & ":R" & DerLigne + 1).Select
Selection.ClearContents
Range("A1").Select
End Sub
J'etais en train de tester le code du message précedant mais je vois qu'il y a bien rapide que moi...

Je regarde pour supprimer le dernier "R" que j'avais pas vu

VB:
Range("G" & DerLigne & ":R" & DerLigne).Select
 
Essayez :
Code:
Sub Test()

Dim DerLigne As Integer
Dim DerLigne2 As Integer
Dim DerColonne As Integer

DerLigne = Range("G" & Rows.Count).End(xlUp).Row
DerLigne2 = DerLigne + 1
DerColonne = Cells(DerLigne, Columns.Count).End(xlToLeft).Column
Range("G" & DerLigne & ":R" & DerLigne).Select

Selection.AutoFill Destination:=Range(Cells(DerLigne, "G"), Cells(DerLigne2, DerColonne)), Type:=xlFillDefault

Range("A1").Select
Range("G" & DerLigne + 1 & ":R" & DerLigne + 1).Select
Selection.ClearContents
Range("A1").Select
End Sub
en espérant y arriver... Hihi
Merci pour l'efficacité de la réponse sylvanu
 
Essayez :
Code:
Sub Test()

Dim DerLigne As Integer
Dim DerLigne2 As Integer
Dim DerColonne As Integer

DerLigne = Range("G" & Rows.Count).End(xlUp).Row
DerLigne2 = DerLigne + 1
DerColonne = Cells(DerLigne, Columns.Count).End(xlToLeft).Column
Range("G" & DerLigne & ":R" & DerLigne).Select

Selection.AutoFill Destination:=Range(Cells(DerLigne, "G"), Cells(DerLigne2, DerColonne)), Type:=xlFillDefault

Range("A1").Select
Range("G" & DerLigne + 1 & ":R" & DerLigne + 1).Select
Selection.ClearContents
Range("A1").Select
End Sub
Tout simplement en reprenant la ligne suivant du code.

Code:
Range(Cells(DerLigne, "G"), Cells(DerLigne, DerColonne)).Select

Merci pour ton intervention qui me permet d'en comprendre d'avantage.

Bonne fin de journée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour