determiner une zone pour appliquer une formule

satwaf

XLDnaute Occasionnel
Bonjour a tous,
j'ai écris ce bout de code, et en fait le problème est que j'aimerai mettre une valeur dans les cellules de la colonne A. Seulement j'aimerai déterminer quelle est la dernière cellule de la colonne, et c'est la que j'ai un souci. pourriez vous m'aider


Sub Macro1()
Sheets("tcd_year").Select
nom4 = ActiveWorkbook.Name
'supprimer les 10 caracteres a gauche du nom
resultat = Left(nom4, Len(nom4) - 10)
'appliquer le nom dans chaque cellule de la colonne A en fonction de la derniere position qui se trouve aleatoirement dans la colonne N
For Each xcell In Sheets("TCD_Year").Range(Range("A3"), Range("n65536").End(xlUp))
xcell.Offset(0, Sheets("TCD_Year").Range("A3"), Range("A65536").End(xlUp).Value -1).Range("a1").Value= resultat
Next xcell

End Sub
 

satwaf

XLDnaute Occasionnel
Re : determiner une zone pour appliquer une formule

j'ai essayé ce type de code, mais je ne comprends pas tres bien. parce qu'en fait au depart je viens coller un tableau dans la cellule E1, et la derniere cellule a une position aleatoire dans la colonne N.
c'est pour cela que j'aimerai determiner cette position et ajouter des données dans la colonne A en fonction de la derniere cellule remplie


Sheets("tcd_year").Select
nom4 = ActiveWorkbook.Name
resultat = Left(nom4, Len(nom4) - 10) 'supprimer les 10 caracteres a gauche du nom
Derligne = Range("A" & Rows.Count).End(xlUp).Row
For Each xcell In Sheets("TCD_Year").Range(Derligne) 'appliquer le nom dans chaque cellule de la colonne A
xcell.Offset(0, Sheets("TCD_Year").Range(Derligne).Value - 1).Range("a1").Value = resultat 'jusqu'a la position de la derniere cellule qui se trouve dans la colonne N
Next xcell
 

camarchepas

XLDnaute Barbatruc
Re : determiner une zone pour appliquer une formule

Dans ce cas ,

avec ce code , en déclarant la variable comme suit

Avec + 1 si tu veux la premiere ligne disponible

Code:
Dim DernièreLigne As Long


  If WorksheetFunction.CountA(Workbooks(NomClasseur).Worksheets(NomFeuille).Cells) > 0 Then
     DernièreLigne = Workbooks(NomClasseur).Worksheets(NomFeuille).Cells.Find(what:="*", after:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
  End If
 

satwaf

XLDnaute Occasionnel
Re : determiner une zone pour appliquer une formule

Merci camarchepas, mais j'ai vraiment du mal a comprendre, j'ai mis ton code, mais cela ne fonctionne pas.
n'y a t(il pas une possibilité pour determiner sur quelle ligne se trouve la derniere cellule, recuperer cette info
et ensuite dire je veux ecrire dans les cellules A3 à Aderniercecellule, une valeur
 

camarchepas

XLDnaute Barbatruc
Re : determiner une zone pour appliquer une formule

Bon ,
Sans le fichier c'est un peu une devinette ,

Avec un fichier ayant la même structure que celle de ton fichier , j'aurais pu te monter la macro , mais bon

Code:
sub Ecrit
Dim DernièreLigne As Long
Dim Col as string 

'Ici il faut renseigner la colonne qui est toujours renseigné dans toutes les lignes 
'Si pas de colonne tooujours renseignée alors prendre la formule plus haut

 Col = "E" 'si c'est la colonne E
 
 Dernièreligne = range(E & rows.count).end(xlup).row
 
 range("A3:A" & dernièreligne) = Valeur ' Ici la valeur qque tu veux écrires ...

end sub
 

satwaf

XLDnaute Occasionnel
Re : determiner une zone pour appliquer une formule

Merci a toi camarchepas, j'ai aussi cherché de mon coté, et j'ai ecris ce bout de code, qui resume exactement ce que je veux et qui fonctionne parfaitement


Code:
For Each xcell In Sheets("TCD_Year").Range("A3:A" & Range("A1").SpecialCells(xlCellTypeLastCell).Row)
 

Discussions similaires