Dernière ligne d'une feuille_VBA

RodyRody Messages postés 48 Statut Membre -  
RodyRody Messages postés 48 Statut Membre -
Bonjour,

Désolé de revenir vers vous avec un sujet déjà tellement traité. Mais pourtant malgré les recherches que je fais sur le forum je ne vois pas ce qui cloche dans mon code.
J'ai une erreur sur la ligne 5 de mon code: "Set plage = WS.Range("A2:A " & dernl) "
Est ce que par hasard quelque chose que j'aurais oublié vous saute au yeux ??

Dim plage As Range
Dim cellule As Range
Dim dernl As Long
dernl = Range("A65536").End(xlUp)
Set plage = WS.Range("A2:A " & dernl) => erreur 1004
For Each cellule In plage
cellule.Offset(0, 13).Value = cellule.Offset(0, 0).Value & cellule.Offset(0, 11).Value & cellule.Offset(0, 12)
Next

Merci à tous

6 réponses

  1. RodyRody Messages postés 48 Statut Membre
     
    Oui aussi je rajoute pour plus de compréhension que quand je rajoute un msg box pr voir la donnée que je trouve en dernl j'ai 0. Mais je ne comprends pas pourquoi ???
    dernl = Range("A65530").End(xlUp)
    MsgBox dernl
    0
  2. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
     
    Bonjour,

    voici une astuce (merci à pijaku pour cette fiche) qui vous dira comment obtenir la dernière ligne non vide.

    Cordialement.
    Ce mec la n'était pas une lumière, car il était niais.
    0
    1. RodyRody Messages postés 48 Statut Membre
       
      Bonjour Chossette9.
      J'avais déjà étudié le lien de Pijaku et pourtant je ne résoud tjrs pas mon problème.

      Dim plage As Range
      Dim cellule As Range
      Dim DernLigne As Long
      DernLigne = Range("A" & Rows.Count).End(xlUp).Row
      MsgBox DernLigne
      Le msgbox me donne tjrs "1"

      Je mets un lien vers mon fichier voir si vous comprenez quelque chose. Sinon je contournerai le problème? Merci beaucoup de vos efforts.


      https://www.cjoint.com/?BAuquKNqt89
      0
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,
    Tu as omis le .Row :
    Dim dernl As Long 
    dernl = Range("A65536").End(xlUp).Row

    Ensuite c'est quoi WS???
    Set plage = WS.Range("A2:A " & dernl)

    0
    1. RodyRody Messages postés 48 Statut Membre
       
      Bonjour pijaku,
      Merci de ta réponse. Je n'avais mis qu'une partie du code et j'avais déjà déclarer WS.
      Ci-dessous mon code complet. Pourtant même quand je rajoute row le msBox me renvoie "1". Ce qui n'est pas logique non ?
      Merci de tes conseils

      Dim WS As Worksheet
      Dim zone_a_copier As Range
      Dim zone_a_coller As Range

      Set WS = Sheets("Conca_1")
      WS.Cells.Clear
      Set zone_a_copier = Sheets("Conca").Range("A1")
      Set zone_a_coller = Sheets("Conca_1").Range("A1")

      zone_a_copier.CurrentRegion.Copy
      zone_a_coller.PasteSpecial xlPasteValues

      WS.Range("N:N").EntireColumn.Insert
      WS.Range("N1").Value = "Concatenation"

      Dim plage As Range
      Dim cellule As Range
      Dim dernl As Long
      dernl = Range("A65536").End(xlUp).Row
      MsgBox dernl
      'Set plage = Range(" A2 : A " & dernl)
      'For Each cellule In plage
      'cellule.Offset(0, 13).Value = cellule.Offset(0, 0).Value & cellule.Offset(0, 11).Value & cellule.Offset(0, 12)
      'Next
      0
    2. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
       
      Bonjour RodyRody,
      Est-ce que par hasard cela est en rapport direct avec Base DD....!?
      Salutations
      Le pingou
      0
    3. RodyRody Messages postés 48 Statut Membre
       
      Loool bien vu Le Pingou...désolé de solliciter autant le forum mais croyez moi que j'essaye toujours tout seul avant de poser ma question.
      Je ne peux pas utiliser de "somme prod" car c'est trop long. Donc je passe par une feuille qui concatenne mes trois critères puis dans insertion/non je vais créer une plage de de donnée dynamique pour faire un rechercherV dans ma feuille "managed". Mais je n'arrive pas à concatenner en VBA. Je craque
      0
    4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      ok.
      Donc tu fais bosser, pour toi, un max de bénévoles, et quand la solution ne te plait pas, tu laisses tomber sans explication et demande à d'autres.

      En plus tu réponds un beau Loool !......

      Je te laisse donc.
      Salutations

      ps : le pingou, désolé.
      A+
      0
    5. RodyRody Messages postés 48 Statut Membre
       
      Désolé je ne comprends pas ce qui te froisse. Je remercie tout le monde qui à bien voulu me consacrer du temps...et je suis à disposition pour toute question ou toute aide que je pourrais fournir à un autre internaute......dans le principe de bon entente et d'entraide du forum. J'essaye de trouver d'abord tout seul et quand je n'y arrive pas je me tourne vers le forum.
      Désolé d'être débutant....
      Je posterai une fois que j'ai fini le fichier complet pr que tout le monde puisse en profiter..
      Merci à vous tous et bonne journée
      0
  4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    tu trouves toujours 1, alors précises de qu'elle feuille tu souhaites la dernière ligne.
    Tente un :
    WS.Range("A65536").End(xlUp).Row 

    De même que :
    'Set plage = WS.Range(" A2 : A " & dernl) 
    0
    1. RodyRody Messages postés 48 Statut Membre
       
      Super effectivement ca fonctionne quand je mets WS avant
      super merci beaucoup
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    tiens, comme il y a du beau monde sur ce post, une proposition pour la base de données

    la base de données est dans un fichier séparé "concat.xls" du même répertoire que draft.xls
    concat.xls doit être fermé

    mais c'est quand m^me un peu lent (8 sommes SQL par ligne): on pourrait accélérer en tenant compte des requ^tes vides mais... (j'vas essayer)
    https://www.cjoint.com/?3Aus3eLwVZ5
    Michel
    0
    1. RodyRody Messages postés 48 Statut Membre
       
      Merci michel_m pour cette solution.
      Ca fonctionne très bien mais le tps de résolution est vraiment trop long.
      A partir de la base de donnée ("Conca") je dois creer une dizaine d'autres bases de données en filtrant selon différents critères. Avec les formules matricielle ca me prend environ 45 minutes.
      Je pense que la solution réside surement dans VBA mais etant neophyte je ne sais pas du tout comment m'y prendre.
      Merci quand même de ton aide.
      Bonne journée.
      Rod
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      J'ai une idée dans mes cartons (autre que les requ^tes vides): je bidouillerai ça en fin d'aprem ou demain matin

      Néanmoins si le TCD " fait en 10 minutes par un expert (...??)" fonctionne, reste sur cette solution

      remarque: c'est certainement trop tard ou impossible (licence logiciel) mais ce genre d'extraction sur grande base (27 col x 30000 lig) aurait demandé l'utilisation d'access; voir les recommandations de la maison-mère:
      http://office.microsoft.com/fr-ch/excel-help/utilisation-d-access-ou-d-excel-pour-gerer-vos-donnees-HA001042918.aspx
      0
    3. RodyRody Messages postés 48 Statut Membre
       
      Michel je te remercie enormement. Si tu as quelque chose je suis plus qu'intéressé. Moi mon fichier ressemble plus à du bidouillage qu'autre chose ; )
      0
    4. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
       
      Bonjour RodyRody,
      Juste une question au passage, si je regarde les résultats de la feuille [Managed] plage [H6 :P313] et que je compare avec celle de ce nouveau classeur feuille [EA] les valeurs ne correspondent pas .... Est-correct ?
      Salutations
      Le Pingou
      0
    5. RodyRody Messages postés 48 Statut Membre
       
      Le Pingou,
      Merci de cette remarque.
      Oui je pense que c'est normal. La feuille [EA] =>(pr economic assumption) et la feuille Managed (pr Managed Unit) ne doivent pas aller chercher les même critères de la feuille conca. Malheureusement je n'ai pas accès à mes fichiers joints du au parefeu de mon entreprise pr vérifier. Mais je pense que ca doit être pr ca que je n'ai pas les mêmes valeurs.
      En revanche, je dois trouver la même donnée entre la feuille "Conca" et la feuille "EA"
      Salutation amicale.
      0
  7. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour RodyRody,
    Merci infiniment pour l'explication, j'ai saisi la nuance, maintenant c'est clair.
    0