Rechercher une cellule dans un calcul

Clem -  
 Clem -
Bonjour,
Je souhaite automatiser par macro sur excel une division.
Comment fait-on pour faire rechercher la dernière cellule non vide d'un tableau dans une formule de calcul (ici une division) ?

Voici ma formule actuellement :

ActiveCell.FormulaR1C1 = "=GoogleAdsense!R[48]C/'testmacro'!R[-27]C"
Range("B40").Select

Je souhaite remplacer R[48]C par la dernière cellule non vide de ma colonne C.

Avez-vous des solutions ?

2 réponses

  1. Paf
     
    bonjour,

    tout d'abord , la recherche de la dernière ligne proposée par Morgothal ne fonctionne que pour Excel 2003 et antérieur
    Pour la portabilité vers des versions supérieures, une possibilité est d'écrire:
    Dim der_ligne As Long
    der_ligne = Range("C" & Rows.Count).End(xlUp).Row
    (source : http://www.commentcamarche.net/faq/32220-vba-derniere-ligne-non-vide-toutes-versions)

    par ailleurs, dans l'écriture de la formule:
    ActiveCell.FormulaR1C1 = "=GoogleAdsense!" & der_ligne & "/'testmacro'!R[-27]C"
    , der_ligne ne contient que le N° de ligne et non pas les coordonnées de la cellule.
    Il faut modifier comme suit:
    ActiveCell.FormulaR1C1 = "=GoogleAdsense!C" & der_ligne & "/'testmacro'!R[-27]C"

    Bonne suite
    1
    1. Clem
       
      Bonjour Paf et merci pour ces précisions.
      Voici la formule qui s'affiche dans ma cellule après l'application de la macro.
      =GoogleAdsense!$DQ:$DQ/testmacro!B13
      or c'est bien la dernière cellule de la colonne C que je souhaite.
      Y-a t'il une autre expression a ajouter ?
      Je te remercie d'avance pour ton retour.
      0
  2. Morgothal Messages postés 1350 Statut Membre 184
     
    Bonjour,
    on peut récupérer la dernière ligne non-vide avec
    der_ligne = Sheets("GoogleAdsense").Range("C65536").End(xlUp).Row 
    Et la formule devient :
    ActiveCell.FormulaR1C1 = "=GoogleAdsense!" & der_ligne & "/'testmacro'!R[-27]C" 

    -------------------
    Cordialement,
    Clément
    0
    1. Clem
       
      Voici ce que j'ai mis :
      Sub google2()
      '
      der_ligne = Sheets("GoogleAdsense").Range("C65536").End(xlUp).Row
      ActiveCell.FormulaR1C1 = "=GoogleAdsense!" & der_ligne & "/'testmacro'!R[-27]C"
      Range("B40").Select
      End Sub

      Mais le lecteur bloque sur la ligne ActivCell.
      0
    2. Morgothal Messages postés 1350 Statut Membre 184
       
      Il bloque avec quel message d'erreur ?
      0
    3. Clem
       
      erreur d'exécution '1004' :
      erreur définie par l'application ou par l'objet
      0