VBA - Columns("C:C") défini par une variable numérique = 3
4 réponses
twinley
Bonsoir à tous,
Une question de syntaxe pour colonnes :
alors que je récupère le numero de colonne par la var I,
quand I=3
alors j'aimerai remplacer columms ("C:C") par quelque chose qui va devenir 4
pour ("D:D") au tour suivant et ainsi de suite.
Je pourrais faire un select case pour les 12 cas, mais il ya surement plus
élégant.
Comment modifier cette ligne ?
Sheets(1).Columns("C:C").EntireColumn.AutoFit
derlgn = Sheets(2).Range("A150").End(xlUp).Row
For I = 2 To 13
dercol = Sheets(I).UsedRange.Column + Sheets(I).UsedRange.Columns.Count
Sheets(I).Range(Cells(3, dercol), Cells(derlgn, dercol)).Copy _
Destination:=Sheets(1).Range(Cells(3, I + 1))
Application.CutCopyMode = False
Sheets(1).Range(Cells(3, I + 1)).NumberFormat = "[h]:mm"
Sheets(1).Range(Cells(2, I + 1)) = Sheets(I).Name
Sheets(1).Range(Cells(2, I + 1)).Select.HorizontalAlignment = xlCenter
Sheets(1).Columns("C:C").EntireColumn.AutoFit
Next I
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
salut twinley,
si la variable est numérique I=2 'pour sélectionner la colonne C Sheets(1).Columns(I + 1).EntireColumn.AutoFit
isabelle
Bonsoir à tous,
Une question de syntaxe pour colonnes : alors que je récupère le numero de colonne par la var I, quand I=3 alors j'aimerai remplacer columms ("C:C") par quelque chose qui va devenir 4 pour ("D:D") au tour suivant et ainsi de suite. Je pourrais faire un select case pour les 12 cas, mais il ya surement plus élégant.
Comment modifier cette ligne ? Sheets(1).Columns("C:C").EntireColumn.AutoFit
derlgn = Sheets(2).Range("A150").End(xlUp).Row For I = 2 To 13 dercol = Sheets(I).UsedRange.Column + Sheets(I).UsedRange.Columns.Count Sheets(I).Range(Cells(3, dercol), Cells(derlgn, dercol)).Copy _ Destination:=Sheets(1).Range(Cells(3, I + 1)) Application.CutCopyMode = False Sheets(1).Range(Cells(3, I + 1)).NumberFormat = "[h]:mm" Sheets(1).Range(Cells(2, I + 1)) = Sheets(I).Name Sheets(1).Range(Cells(2, I + 1)).Select.HorizontalAlignment = xlCenter Sheets(1).Columns("C:C").EntireColumn.AutoFit Next I
Merci pour votre aide. -- à+twinley
salut twinley,
si la variable est numérique
I=2
'pour sélectionner la colonne C
Sheets(1).Columns(I + 1).EntireColumn.AutoFit
isabelle
Bonsoir à tous,
Une question de syntaxe pour colonnes :
alors que je récupère le numero de colonne par la var I,
quand I=3
alors j'aimerai remplacer columms ("C:C") par quelque chose qui va devenir 4
pour ("D:D") au tour suivant et ainsi de suite.
Je pourrais faire un select case pour les 12 cas, mais il ya surement plus
élégant.
Comment modifier cette ligne ?
Sheets(1).Columns("C:C").EntireColumn.AutoFit
derlgn = Sheets(2).Range("A150").End(xlUp).Row
For I = 2 To 13
dercol = Sheets(I).UsedRange.Column + Sheets(I).UsedRange.Columns.Count
Sheets(I).Range(Cells(3, dercol), Cells(derlgn, dercol)).Copy _
Destination:=Sheets(1).Range(Cells(3, I + 1))
Application.CutCopyMode = False
Sheets(1).Range(Cells(3, I + 1)).NumberFormat = "[h]:mm"
Sheets(1).Range(Cells(2, I + 1)) = Sheets(I).Name
Sheets(1).Range(Cells(2, I + 1)).Select.HorizontalAlignment = xlCenter
Sheets(1).Columns("C:C").EntireColumn.AutoFit
Next I
si la variable est numérique I=2 'pour sélectionner la colonne C Sheets(1).Columns(I + 1).EntireColumn.AutoFit
isabelle
Bonsoir à tous,
Une question de syntaxe pour colonnes : alors que je récupère le numero de colonne par la var I, quand I=3 alors j'aimerai remplacer columms ("C:C") par quelque chose qui va devenir 4 pour ("D:D") au tour suivant et ainsi de suite. Je pourrais faire un select case pour les 12 cas, mais il ya surement plus élégant.
Comment modifier cette ligne ? Sheets(1).Columns("C:C").EntireColumn.AutoFit
derlgn = Sheets(2).Range("A150").End(xlUp).Row For I = 2 To 13 dercol = Sheets(I).UsedRange.Column + Sheets(I).UsedRange.Columns.Count Sheets(I).Range(Cells(3, dercol), Cells(derlgn, dercol)).Copy _ Destination:=Sheets(1).Range(Cells(3, I + 1)) Application.CutCopyMode = False Sheets(1).Range(Cells(3, I + 1)).NumberFormat = "[h]:mm" Sheets(1).Range(Cells(2, I + 1)) = Sheets(I).Name Sheets(1).Range(Cells(2, I + 1)).Select.HorizontalAlignment = xlCenter Sheets(1).Columns("C:C").EntireColumn.AutoFit Next I
Merci pour votre aide. -- à+twinley
twinley
Mille merci Isabelle. c'est aussi simple que ça... par contre mes autres lignes sont douteuses, mais j'y travaille. Bonne soirée -- à+twinley "isabelle" a écrit dans le message de news:
salut twinley,
si la variable est numérique I=2 'pour sélectionner la colonne C Sheets(1).Columns(I + 1).EntireColumn.AutoFit
isabelle
Bonsoir à tous,
Une question de syntaxe pour colonnes : alors que je récupère le numero de colonne par la var I, quand I=3 alors j'aimerai remplacer columms ("C:C") par quelque chose qui va devenir 4
pour ("D:D") au tour suivant et ainsi de suite. Je pourrais faire un select case pour les 12 cas, mais il ya surement plus
élégant.
Comment modifier cette ligne ? Sheets(1).Columns("C:C").EntireColumn.AutoFit
derlgn = Sheets(2).Range("A150").End(xlUp).Row For I = 2 To 13 dercol = Sheets(I).UsedRange.Column + Sheets(I).UsedRange.Columns.Count
Sheets(I).Range(Cells(3, dercol), Cells(derlgn, dercol)).Copy _ Destination:=Sheets(1).Range(Cells(3, I + 1)) Application.CutCopyMode = False Sheets(1).Range(Cells(3, I + 1)).NumberFormat = "[h]:mm" Sheets(1).Range(Cells(2, I + 1)) = Sheets(I).Name Sheets(1).Range(Cells(2, I + 1)).Select.HorizontalAlignment xlCenter Sheets(1).Columns("C:C").EntireColumn.AutoFit Next I
Merci pour votre aide. -- à+twinley
Mille merci Isabelle.
c'est aussi simple que ça...
par contre mes autres lignes sont douteuses, mais j'y travaille.
Bonne soirée
--
à+twinley
"isabelle" <as.isabellevIE@videotron.ca> a écrit dans le message de
news:41A51394.FFB76E83@videotron.ca...
salut twinley,
si la variable est numérique
I=2
'pour sélectionner la colonne C
Sheets(1).Columns(I + 1).EntireColumn.AutoFit
isabelle
Bonsoir à tous,
Une question de syntaxe pour colonnes :
alors que je récupère le numero de colonne par la var I,
quand I=3
alors j'aimerai remplacer columms ("C:C") par quelque chose qui va
devenir 4
pour ("D:D") au tour suivant et ainsi de suite.
Je pourrais faire un select case pour les 12 cas, mais il ya surement
plus
élégant.
Comment modifier cette ligne ?
Sheets(1).Columns("C:C").EntireColumn.AutoFit
derlgn = Sheets(2).Range("A150").End(xlUp).Row
For I = 2 To 13
dercol = Sheets(I).UsedRange.Column +
Sheets(I).UsedRange.Columns.Count
Sheets(I).Range(Cells(3, dercol), Cells(derlgn, dercol)).Copy _
Destination:=Sheets(1).Range(Cells(3, I + 1))
Application.CutCopyMode = False
Sheets(1).Range(Cells(3, I + 1)).NumberFormat = "[h]:mm"
Sheets(1).Range(Cells(2, I + 1)) = Sheets(I).Name
Sheets(1).Range(Cells(2, I + 1)).Select.HorizontalAlignment xlCenter
Sheets(1).Columns("C:C").EntireColumn.AutoFit
Next I
Mille merci Isabelle. c'est aussi simple que ça... par contre mes autres lignes sont douteuses, mais j'y travaille. Bonne soirée -- à+twinley "isabelle" a écrit dans le message de news:
salut twinley,
si la variable est numérique I=2 'pour sélectionner la colonne C Sheets(1).Columns(I + 1).EntireColumn.AutoFit
isabelle
Bonsoir à tous,
Une question de syntaxe pour colonnes : alors que je récupère le numero de colonne par la var I, quand I=3 alors j'aimerai remplacer columms ("C:C") par quelque chose qui va devenir 4
pour ("D:D") au tour suivant et ainsi de suite. Je pourrais faire un select case pour les 12 cas, mais il ya surement plus
élégant.
Comment modifier cette ligne ? Sheets(1).Columns("C:C").EntireColumn.AutoFit
derlgn = Sheets(2).Range("A150").End(xlUp).Row For I = 2 To 13 dercol = Sheets(I).UsedRange.Column + Sheets(I).UsedRange.Columns.Count
Sheets(I).Range(Cells(3, dercol), Cells(derlgn, dercol)).Copy _ Destination:=Sheets(1).Range(Cells(3, I + 1)) Application.CutCopyMode = False Sheets(1).Range(Cells(3, I + 1)).NumberFormat = "[h]:mm" Sheets(1).Range(Cells(2, I + 1)) = Sheets(I).Name Sheets(1).Range(Cells(2, I + 1)).Select.HorizontalAlignment xlCenter Sheets(1).Columns("C:C").EntireColumn.AutoFit Next I
Merci pour votre aide. -- à+twinley
GD
Bonsour ® twinley , heu... simplement For I= 2 to 13 '-----ton code ' i varie alors de 2 à 13 alors le n° de colonne de 3 à 14 soit C à N Sheets(1).Columns(I+1).EntireColumn.AutoFit '-----le reste du code Next
mais tu peux également écrire hors de la boucle for : Sheets(1).Range("3:14").EntireColumn.AutoFit ;o))) @+
Bonsour ® twinley ,
heu... simplement
For I= 2 to 13
'-----ton code
' i varie alors de 2 à 13 alors le n° de colonne de 3 à 14 soit C à N
Sheets(1).Columns(I+1).EntireColumn.AutoFit
'-----le reste du code
Next
mais tu peux également écrire hors de la boucle for :
Sheets(1).Range("3:14").EntireColumn.AutoFit
;o)))
@+
Bonsour ® twinley , heu... simplement For I= 2 to 13 '-----ton code ' i varie alors de 2 à 13 alors le n° de colonne de 3 à 14 soit C à N Sheets(1).Columns(I+1).EntireColumn.AutoFit '-----le reste du code Next
mais tu peux également écrire hors de la boucle for : Sheets(1).Range("3:14").EntireColumn.AutoFit ;o))) @+
twinley
Bonsoir GD, pardon bonjour.
Oui, c'est pas glorieux. C'était en attente d'avoir la syntaxe de la col. C'est devenu ceci car l'autre était buggé à mort.
Sub recapsomme() derlgn = Sheets(2).Range("A150").End(xlUp).Row For I = 2 To 13 dercol = Sheets(I).UsedRange.Column + Sheets(I).UsedRange.Columns.Count - 1 Sheets(I).Columns(dercol).EntireColumn.Copy _ Destination:=Sheets(1).Columns(I + 1).EntireColumn Sheets(1).Columns(I + 1).EntireColumn.NumberFormat = "[h]:mm" Sheets(1).Cells(2, I + 1) = Sheets(I).Name Sheets(1).Cells(2, I + 1).HorizontalAlignment = xlCenter ' Sheets(1).Columns(I + 1).EntireColumn.AutoFit Next I Sheets(1).Range("3:14").EntireColumn.AutoFit End Sub
Merci pour ton aide, je prend bonne note et j'adopte, on gagne 11 instructions. Dire que je me compliquais la vie, ah là là... -- à+twinley "GD" a écrit dans le message de news:
Bonsour ® twinley , heu... simplement For I= 2 to 13 '-----ton code ' i varie alors de 2 à 13 alors le n° de colonne de 3 à 14 soit C à N Sheets(1).Columns(I+1).EntireColumn.AutoFit '-----le reste du code Next
mais tu peux également écrire hors de la boucle for : Sheets(1).Range("3:14").EntireColumn.AutoFit ;o))) @+
Bonsoir GD, pardon bonjour.
Oui, c'est pas glorieux. C'était en attente d'avoir la syntaxe de la col.
C'est devenu ceci car l'autre était buggé à mort.
Sub recapsomme()
derlgn = Sheets(2).Range("A150").End(xlUp).Row
For I = 2 To 13
dercol = Sheets(I).UsedRange.Column +
Sheets(I).UsedRange.Columns.Count - 1
Sheets(I).Columns(dercol).EntireColumn.Copy _
Destination:=Sheets(1).Columns(I + 1).EntireColumn
Sheets(1).Columns(I + 1).EntireColumn.NumberFormat = "[h]:mm"
Sheets(1).Cells(2, I + 1) = Sheets(I).Name
Sheets(1).Cells(2, I + 1).HorizontalAlignment = xlCenter
' Sheets(1).Columns(I + 1).EntireColumn.AutoFit
Next I
Sheets(1).Range("3:14").EntireColumn.AutoFit
End Sub
Merci pour ton aide, je prend bonne note et j'adopte, on gagne 11
instructions.
Dire que je me compliquais la vie, ah là là...
--
à+twinley
"GD" <nomail@nomail.net> a écrit dans le message de
news:uGLttun0EHA.3408@tk2msftngp13.phx.gbl...
Bonsour ® twinley ,
heu... simplement
For I= 2 to 13
'-----ton code
' i varie alors de 2 à 13 alors le n° de colonne de 3 à 14 soit C à N
Sheets(1).Columns(I+1).EntireColumn.AutoFit
'-----le reste du code
Next
mais tu peux également écrire hors de la boucle for :
Sheets(1).Range("3:14").EntireColumn.AutoFit
;o)))
@+
Oui, c'est pas glorieux. C'était en attente d'avoir la syntaxe de la col. C'est devenu ceci car l'autre était buggé à mort.
Sub recapsomme() derlgn = Sheets(2).Range("A150").End(xlUp).Row For I = 2 To 13 dercol = Sheets(I).UsedRange.Column + Sheets(I).UsedRange.Columns.Count - 1 Sheets(I).Columns(dercol).EntireColumn.Copy _ Destination:=Sheets(1).Columns(I + 1).EntireColumn Sheets(1).Columns(I + 1).EntireColumn.NumberFormat = "[h]:mm" Sheets(1).Cells(2, I + 1) = Sheets(I).Name Sheets(1).Cells(2, I + 1).HorizontalAlignment = xlCenter ' Sheets(1).Columns(I + 1).EntireColumn.AutoFit Next I Sheets(1).Range("3:14").EntireColumn.AutoFit End Sub
Merci pour ton aide, je prend bonne note et j'adopte, on gagne 11 instructions. Dire que je me compliquais la vie, ah là là... -- à+twinley "GD" a écrit dans le message de news:
Bonsour ® twinley , heu... simplement For I= 2 to 13 '-----ton code ' i varie alors de 2 à 13 alors le n° de colonne de 3 à 14 soit C à N Sheets(1).Columns(I+1).EntireColumn.AutoFit '-----le reste du code Next
mais tu peux également écrire hors de la boucle for : Sheets(1).Range("3:14").EntireColumn.AutoFit ;o))) @+