Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1075 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Etirer la formule de plusieurs lignes jusqu'en bas de mon tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Etirer la formule de plusieurs lignes jusqu'en bas de mon tableau

n°2200950
val_ou
Posté le 28-08-2013 à 10:48:49  profilanswer
 

Bonjour le forum!
 
Je vous expose mon problème:
J'ai un tableau excel avec des données qui sont collées avec une macro. Les dernière colonnes de mon tableau sont des formules que j'étire à la main, et j'aimerais que la macro le fasse à ma place.
J'ai déclaré des variables car mon nombre de ligne change dès que la macro colle les données (une fois par mois).
J'ai adapté le code que j'ai obtenu grâce à l'enregistreur avec mes variables, mais ça ne fonctionne pas.
 
Ci dessous le code "manuel" :
 

Code :
  1. Range("AO39178" ).Select
  2.     Range(Selection, Selection.End(xlToRight)).Select
  3.     Selection.AutoFill Destination:=Range("AO39178:CK39834" )
  4.     Range("AO39178:CK39834" ).Select


 
Et voici mon code adapté qui ne fonctionne pas à cause des Range("variables" ) :
 

Code :
  1. Range("AO3" ).End(xlDown).Select
  2.     Set cell1 = ActiveCell
  3.    
  4.     Range("A3" ).End(xlDown).Select
  5.     ActiveCell.Offset(0, 88).Select
  6.     Set cell2 = ActiveCell
  7.     cell1.Select
  8.     Range(Selection, Selection.End(xlToRight)).Select
  9.     Selection.AutoFill Destination:=cell1: cell2 , Type:= _
  10.         xlFillDefault
  11.     Range("cell1:cell2" ).Select


 
Merci par avance à tous!

mood
Publicité
Posté le 28-08-2013 à 10:48:49  profilanswer
 

n°2200958
Marc L
Posté le 28-08-2013 à 12:12:12  profilanswer
 

 
           Bonjour,
 
           " mais ça ne fonctionne pas " ?   Oui mais encore ?  Sans explication claire …
 
           Sinon retirer tous ces affreux  .Select  inutiles et source de ralentissement et voir même de problème ‼
 
           Ligne n° 4 :   A3 ?
 
           Ligne n°10 :  lire l'aide et l'exemple de la méthode  AutoFill  ne ferait pas de mal notamment pour son argument Destination
   
           Ligne n°12 :  aberrante ‼   Les guillemets servent à encadrer du texte, non ?!


Message édité par Marc L le 28-08-2013 à 12:14:34
n°2200969
val_ou
Posté le 28-08-2013 à 14:12:51  profilanswer
 

C'est justement ces variables qui ne fonctionnent pas puisque les guillemets ne servent pas à les encadrer.
 

n°2201128
val_ou
Posté le 29-08-2013 à 13:46:25  profilanswer
 

Bon et bien pour ceux que ça intéressent, j'ai résolu mon problème.
Voilà le code qui fonctionne :
 

Code :
  1. Dim NbLignes
  2.     NbLignes = ActiveSheet.UsedRange.Rows.Count
  3.    
  4.     Range("AO3:CL3" ).Select
  5.     selection.AutoFill Destination:=Range("AO3:CL" & NbLignes), Type:=xlFillDefault
  6.     Range("AO3:CL" & NbLignes).Select

n°2201244
Marc L
Posté le 30-08-2013 à 09:42:54  profilanswer
 

 
           Bien mais ce serait bien mieux sans .Select
 
           Mais NbLignes est faux si la première ligne utilisée n'est pas la première de la feuille …


Message édité par Marc L le 30-08-2013 à 11:07:06
n°2201461
val_ou
Posté le 02-09-2013 à 11:43:12  profilanswer
 

Il faudrait mettre activate à la place de select?
 
Je ne comprends l'erreur dans NbLignes

n°2201464
Marc L
Posté le 02-09-2013 à 12:53:41  profilanswer
 

 
           Nan !
 
           Toujours associer directement la méthode à l'objet :   Range("AO3:CL3" ).AutoFill
 
 
           Sinon à partir d'un classeur vierge, saisir une donnée en K11 puis une autre en P20 :  NbLignes sera à 10 et non pas à 20 …
 
           Pas de souci donc avec NbLignes si la première ligne utilisée est bien la ligne n°1 de la feuille, sinon …


Message édité par Marc L le 02-09-2013 à 12:56:05
n°2202018
val_ou
Posté le 06-09-2013 à 11:10:41  profilanswer
 

Merci pour le conseil sur le .Select qui se répète avec le Selection; je ne savais pas qu'on pouvait tout coller afin d'éliminer les lignes superflues

n°2202023
Marc L
Posté le 06-09-2013 à 11:24:46  profilanswer
 

 
           Ton code se résume donc ainsi sans souci du nombre de lignes :

Code :
  1.     With ActiveSheet.UsedRange
  2.         [AO3:CL3].AutoFill Range("AO3:CL" & .Rows(.Rows.Count).Row)
  3.     End With


n°2202322
val_ou
Posté le 09-09-2013 à 16:52:25  profilanswer
 

Merci pour ton aide Marc!  :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Etirer la formule de plusieurs lignes jusqu'en bas de mon tableau

 

Sujets relatifs
Boucle FOR et tableauvérification présence valeur dans tableau associatif
php problème tableau suite requête MySQL [résolu]mail html tableau décalé
Basculer automatiquement entre plusieurs logicielsSupprimer plusieurs membres de ma base de données
remplir un tableau HTML avec des variables JSRenommer des WP et Parts sur plusieurs niveaux
séparateur espace sélection tableauRecherche de valeur dans un tableau dynamique
Plus de sujets relatifs à : Etirer la formule de plusieurs lignes jusqu'en bas de mon tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR