adresse de cellule en VBA

  • Initiateur de la discussion Timide
  • Date de début
T

Timide

Guest
Bonjour à tous et particulièrement aux contributeurs dévoués.

La macro ci-dessous me fait des misères (XL97 et WIN NT)

le message suivant "erreur 424 - Objet requis" s'affiche quand je
tente de faire rajouter à la suite d'une cellule que j'ai appelée "derniere", les sections manquantes par rapport à une table définie dans une feuille
"valeurs références"

L'erreur que j'ai commise est sans doute de niveau débutant, mais j'ai ce qui me reste de cerveau complétement liquéfié.

Avez vous une idée de la correction de code à apporter ?

Merci de vos lumières.

ci dessous le code avec les commentaires

Sub ajoutsection()

'*******************************************************************
'
' Macro enregistrée le 15/05/2003 par M. Le Gorgeu en cours de complément le 6/08/2003
' recherche les sections dans la table N1:N32 de la feuille "valeursréférences"

' Va rajouter une ligne pour chaque section manquante
' située en colonne B:B de la feuille "stages" de façon
' à pouvoir être utilisé utilement dans un TCD
'
' Explication : dans le TCD de reporting certaines sections
' sont regroupées. Or si une section regroupée dans le code VBA
' n'existe pas sur la feuille "stage", VBA signale une erreur et
' arrête le traitement(si comme c'est le cas on n'a pas mis "on error resume next).
'
'*******************************************************************
Sheets("Valeursréférences").Select
Range("B2:B32").Select ' les sections 2003 sont sur cette plage
Selection.Copy
Sheets("Stage").Select
Range("N2").Select
ActiveSheet.Paste
Range("B1").End(xlDown).Offset(1, 0).Range("A1").Select ' positionnement sur la
'première cellule vide de la colonne B, pour y ajouter les sections manquantes

derniere = Selection.Address ' recupération de l'adresse de cette cellule
Range("n2:N32").Select 'en N2:N32 sont situées les sections

'je regarde ensuite si dans la plage située avant la cellule "derniere" une ou
'plusieurs sections situées dans la plage N2:N32 sont manquantes
'si oui je les rajoute

'le problème se situe ici dessous VBA n'aime manifestement pas
' B2:derniere

For Each c In Selection
If Application.CountIf(Range("B2:B3000"), c) = 0 Then
[B2:derniere].End(4)(2) = c.Value
End If
Next

End Sub
 
T

Timide

Guest
Bonjour Romfret

et merci cela fonctionne parfaitement.

Puis-je abuser ?

Juste pour ma satisfaction intellectuelle personnelle, peux tu m'expliquer pourquoi ce que j'avais écrit ne fonctionne pas ?


Merci encore

Timide (M. Le Gorgeu)
 
T

Timide

Guest
Bonjour Creepy,

Mes connaissances en VBA (tu as pu le constater) sont lacunaires.

Toutefois je ne pense pas que cela vienne du défaut de déclaration de variable, le message d'erreur de VBA étant "objet requis".

Sans en être sur (c'est pourquoi j'ai demandé des explications complémentaires), je cropis que c'est parce que VBA n'aime pas comme adresse de cellule (B2:derniere) que cela n'a pas marché.

Mais celà reste à prouver...

Merci en tous les cas de ta proposition de pisrte

Timide (M. Le Gorgeu)
 

Discussions similaires