Gestionnaire de noms lignes aléatoires

Profane

XLDnaute Occasionnel
Bonjour le forum
voila je nomme dynamiquement les colonnes en fonction du nom de celle ci, juste les colonnes qui m'interesse
le soucis c'est que sur un tableau qui doit faire 500 lignes où toutes les cellules sont remplies
et bien je n'obtiens pas toutes les lignes de la colonne et cela meme entre les 2 colonnes suivantes du code
Kesako ?
merci d'avance pour votre aide

Sub MEFDT()
Sheets("DT").Activate
Dim i As Integer
With Sheets("DT")
For i = 1 To 36
If .Cells(1, i) = "N° de commande_extra" Then
.Cells(1, i) = "Commande_extra"
ActiveWorkbook.Names.Add Name:="Commande_extra", RefersToR1C1:="=OFFSET(DT!R2C" & i & ",,,COUNTA(DT!C" & i & ")-1)"
' on insere une colonne avant "command_extra"
.Columns(i).Resize(, 1).Insert
.Cells(1, i) = "RTX"
ElseIf .Cells(1, i) = "ID Accès" Then
ActiveWorkbook.Names.Add Name:="ID_Acces", RefersToR1C1:="=OFFSET(DT!R2C" & i & ",,,COUNTA(DT!C" & i & ")-1)"

End If
Next i
End With
End Sub
 

GIBI

XLDnaute Impliqué
Re : Gestionnaire de noms lignes aléatoires

Bonjour,


dans des fonctions "décaler" ajoute la largeur de la plage =OFFSET(DT!R2C" & i & ",,,COUNTA(DT!C" & i & ")-1,1)" car chez moi cela provoque une erreur (référence invalide)

D'autre part quand tu insère des lignes tu traite 2 fois la colonne puisque tu insère un colonne supplémentaire à gauche de la colonne en cours

GIBI
 

Profane

XLDnaute Occasionnel
Re : Gestionnaire de noms lignes aléatoires

Bonjour GIBI,
en fait j'ai trouvé d'ou vient l'erreur counta (VBA) = nbval en formule excel
et le probleme et que j'ai des cellules vides parmi les colonnes, donc en gros la formule compte le nombre de cellules non vides et implémente cette valeur comme fin de colonne, le probléme c'est que sur 500 lignes, j'en ai 13 de vides donc il mets la fin de colonne à 487 - titre.....ce qui fait que je me retrouve avec un nom de colonne erroné
y a il un moyen de pointer sur la colonne a, pour récuperer la valeur de fin et l'impolémenter ?
@+
 

Profane

XLDnaute Occasionnel
Re : Gestionnaire de noms lignes aléatoires

bon,
j'ai bidouillé un truc mais ca marche pas non plus
pourtant c est l'idée.........
quelqu un a une idée ?

With Sheets("DT")
Dim loRge As Range
Dim liNbCol As Integer
Set loRge = Sheets("DT").Range("A1")
liNbCol = Sheets("DT").Range(loRge, loRge.End(xlDown)).Rows.Count

Dim i As Integer
For i = 1 To 36
If .Cells(1, i) = "N° de commande" Then
.Cells(1, i) = "Commande"
ActiveWorkbook.Names.Add Name:="Commande", RefersTo:=Range("i & 2:i & libNbCol")
End If
Next i
End With
 

Discussions similaires

Réponses
0
Affichages
173

Statistiques des forums

Discussions
312 398
Messages
2 088 076
Membres
103 699
dernier inscrit
amin Saadaoui