Range("A65536").End(xlUp).Row

  • Initiateur de la discussion Tcho!
  • Date de début
T

Tcho!

Guest
Hello le forum

Y-a-t-il possibilté d'adapter cette formule ???

Je voudrais l'exécuter sur toutes les colonnes de la feuille de A jusqu'à IV (1 à 256)

pour cela j'aimerias me servir d'une boucle

mais

la formule Range(cells(1,1),cells(65536,1)).End(xlUp).Row

ne me donne rien

y-en-a-t-il parmi vous qui ont su contourner le problème ?
 
@

@+Thierry

Guest
Bonjour Tcho, le Forum

Si çà peut te faire avancer, voilà la syntax que je pourrais employer dans une tâche (totalement imaginaire) si j'avais à traiter par colonne toutes les cellule de la feuilles :

Sub Tcho()
Dim Cell As Range, Plage As Range
Dim i As Integer

For C = 1 To 256

Set Plage = Range(Cells(1, C), Cells(Cells(65536, C).End(xlUp).Row, C))
For Each Cell In Plage
If Cell <> "" Then
Cell.Interior.ColorIndex = 3
End If
Next Cell

Next C
End Sub

Bonne Programmation et après midi

@+Thierry
 
@

@+Thierry

Guest
Décidément je vais pas bien aujourd'hui !! lol

En fait, je suis sur une bécanne neuve et rien n'est paramétré, y compris l'obligation de déclaration de variable dans VBE !! (Option Explicit) bon là c'est fait !!

Et donc comme vous avez déjà tous corrigé...

Dim C As Integer 'à la pace de "i" of course !!!

Sorry
@+Thierry
 
T

Tcho!

Guest
Thierry, le Forum

Petit souci dans ta macro :
Si Plage est vide, il me sort une erreur :
Erreur d'exécution '13': Type incompatible

Si je rajoute entre tes 2 lignes :
Set Plage = Range(Cells(1, C), Cells(Cells(65536, C).End(xlUp).Row, C))
if plage="" then goto PlageVide
For Each Cell In Plage
...
PlageVide:
Next C

J'ai la même erreur !

Kepassa, Kesako ??

J'espère que tu pourras, vous pourrez m'aider : ))
 
@

@+Thierry

Guest
Bonjour Tcho, le Forum

J'ai fait tourner sous XL2000 le code tel que je te l'ai fournit dans un classeur vierge, et rien ne se passe, pas d'erreur non plus (?)

Ceci dit tu peux essayer comme ceci, chez moi çà ne fait rien non plus, mauis chez ptet que çà édiquera cette méchante erreur !

Sub Tcho()
Dim Cell As Range, Plage As Range
Dim C As Integer

For C = 1 To 256

Set Plage = Range(Cells(1, C), Cells(Cells(65536, C).End(xlUp).Row, C))
If Not Plage Is Nothing Then
For Each Cell In Plage
If Cell <> "" Then
Cell.Interior.ColorIndex = 3
End If
Next Cell
End If
Next C
End Sub

Bonne journée
@+Thierry
 
T

Tcho!

Guest
Io Thierry, le forum

Beuuuuuuuuuuuuuuuuuuu
Ta manip ne fonctionne pas chez moi, aussi bien sur 97 que sur 2000 :((

Dans la colonne A:A, je me suis mis un texte de Jean de la Fontaine pour essai

Voici mon code

Sub codage()

Dim a, b
Dim cellulesTOT, cellulesVID, cellulesNVI
Dim Cell As Range, Plage As Range
Dim col As Integer

a = 1
b = 1

' Nombre de Cellules totales dans la feuille
cellulesTOT = 65536 * 256 '16777216
' Nombre de Cellules vides dans la feuille
cellulesVID = WorksheetFunction.CountBlank(Range("A1:IV65536"))
' Nombre de Cellules non vides dans la feuille
cellulesNVI = cellulesTOT - cellulesVID

Clef = InputBox("Entrez une clef de codage", "(MOTK) - Master Of The Key")

For col = 1 To 256

' Derniere cellule rencontrée non vide dans la colonne
' Récupération de la plage jusqu'à cette dernière cellule
Plage = Range(Cells(1, col), Cells(Cells(65536, col).End(xlUp).Row, col))

'If Not Plage Is Nothing Then

For Each Cell In Plage

If Cell = "" Then b = b + 1
If Cell <> "" Then

LText = Len(Cell)
LClef = Len(Clef)

For i = 1 To LText

If a = (LClef + 1) Then a = 1

t = Asc(Mid(Cell, i, 1))
c = Asc(Mid(Clef, a, 1))

K = t + c Mod 13

Worksheets("Feuil1").Cells(b, col).Value = l & Chr(K)

l = l & Chr(K)

a = a + 1

Next i

b = b + 1
l = ""

End If

Next Cell

'End If

Next col

End Sub
 
@

@+Thierry

Guest
Salut Tcho, le Forum

Tiens j'ai eu par hazard une recherrche qui m'a amené sur ce fil et je n'avais pas vu ta dernière question. Je viens de re-tester sur un autre PC les codes que je t'avais proposés et je n'ai pas de problème.

A mon avis tu as mal rédigé ta procédure. Ce que je remarque au premier abord :

Tu n'as pas défini un "Set" d'objet pour ta plage contrairement à ce que je t'avais proposé.

Tu déclares mal (ou pas du tout tes variables), tu devrais écrire "Option Explicit" en toute première ligne de ton module. Et "Dim cellulesTOT, cellulesVID, cellulesNVI" équivaut à tout déclarer as Variant, alors que Long devrait suffire)

Tu écris "Worksheets("Feuil1").Cells(b, col).Value = l & Chr(K)" alors que "L" n'est pas encore initialisé et de toute manière il y a une erreur de syntax car Worksheets demande un object Range dans ce cas, donc quelque chose comme Worksheets("Feuil1").Range(Cells(b, col))...

Pour le reste je n'ai pas compris car çà bug presque à chaque ligne pour essayer de comprendre, (L'opérateur modulo "K" sur un Chr ASCII ?, tu veux faire un codification criptée de tes cellules ?)

Enfin voilà grosso modo ce que j'ai vu...

Bon Courage
@+Thierry
 

Discussions similaires

Réponses
6
Affichages
170
Réponses
2
Affichages
176
Réponses
7
Affichages
410

Statistiques des forums

Discussions
312 500
Messages
2 089 013
Membres
104 004
dernier inscrit
mista