Détection de cellule vide Ligne/colonne

Bonjour à tous,

aprés un changement de pC je viens de passer sous excel 2016. J'ai une macro qui ne fonctionne plus, le nombre de ligne sur excel

ayant augmenté.

Comment puis-je remplacer ce code pour qu'il puisse fonctionner sur n'importe quelle version, sachant que je dois utiliser cette macro sous

excel 2007 et 2016 :

Sheets("Export (2)").Range("a65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Merci pour votre aide

Bonjour,

Remplace Range("A65536") par Range("A"&Rows.Count)

Normalement cela devrait fonctionner.

Sha'

Bonjour Sharney,

je viens de tester, normalement j'ai 316 lignes à vérifier et a copier.

Mais en remplaçant par ton code, il s'arrete à la ligne 160.

Ah bah là sans fichier je ne comprends pas pourquoi... Pourrais tu mettre un fichier à dispo ou sinon attendre que quelqu'un de plus expérimenté vienne t'aider... ?

Sha'

Sha' ,

meme en allegeant le fichier au maximum; je suis à 1.1Mo

Bonsoir Régis,

Tu a écrit :

je viens de tester, normalement j'ai 316 lignes à vérifier et à copier.

Mais en remplaçant par ton code, il s'arrête à la ligne 160.

C'est donc qu'en colonne A, ta dernière ligne utilisée est la ligne n° 160 ; si c'est par exemple en colonne C que ta dernière donnée est en ligne n° 316, alors tu dois utiliser cette instruction :

Worksheets("Export (2)").Range("C" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues

ou encore:

Worksheets("Export (2)").Cells(Rows.Count, 3).End(xlUp).Offset(1).PasteSpecial -4163

dhany

bonjour Dhany,

merci pour ton aide. je viens d'essayer tes deux propositions.

Il y a un leger mieux, mais ce n'est pas encore le top.

En fait une premiere verification est faite sur 316 lignes. mais ce nombre est aleatoire

il peut y en avoir plus ou moins 316.

j'ai donc mis au regard de chaque ligne un numero qui est comparé à 316.

si le numero est supérieur ou egal la macro s'arrete.

Dans mon cas, la marcro s'execute bien , mais elle s'arrete au numéro 284 dans

les versions que tu me proposes.

le fichier etant lourd (meme en l'epurant) je ne sais pas comment faire

voici le code qui doit tourner en boucle, si cela peut aider

Sub copy_export()

''1ere verification pour savoir si la valeur du compteur n'est pas supérieure ou egale

''à la valeur maxi du nombre de formules dans la base

If Sheets("export_formules").Range("c2").Value >= Sheets("export_formules").Range("f2").Value Then

Exit Sub

Else

''2eme verification pour savoir si la formule est transferable oui ou non

If Sheets("export_formules").Range("e2").Value <> 1 Then

''si non ajout d'une unité au compteur

Sheets("export_formules").Range("c2").Value = Sheets("export_formules").Range("c2").Value + 1

copy_export

Else

''si oui copy de la formule dans la feuille export (2)

Sheets("export_formules").Range("export_copy1").Copy

Sheets("Export (2)").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues

'Sheets("Export (2)").Range("a65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Application.CutCopyMode = False

Sheets("export_formules").Range("c2").Value = Sheets("export_formules").Range("c2").Value + 1

''retour au debut de la macro

copy_export

End If

End If

End Sub

C'est bon j'ai trouvé,

Sheets("Export (2)").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues

sur le offset seul (1) suffit et non pas (1, 0)

ouf

Rechercher des sujets similaires à "detection vide ligne colonne"