Aide Code VBA

MIKEFLY62

XLDnaute Junior
Bonjour a tous,

pourriez vous revoir le debut de mon code pour le passer de base de donné fixe (300000 Lignes) à une base de donné dynamique etant donné que ma base evolue souvent (ajout suppression lignes)

Je sais que le code est du type "Range("A100000").End(xlUp).Row" car la reference est la colonne mais je n'arrive pas a construire le code.

D avance merci pour votre aide

Voici le debut de mon code:

Private Sub CommandButton1_Click()

If CommandButton1.BackColor = &HFF& Then
CommandButton1.BackColor = &HFF0000
Else
CommandButton1.BackColor = &HFF&
End If
ActiveWorkbook.Names.Add Name:="boite", RefersToR1C1:="=base!R2C17:R300000C17"
ActiveWorkbook.Names.Add Name:="carton", RefersToR1C1:="=base!R2C18:R300000C18"
ActiveWorkbook.Names.Add Name:="reference", RefersToR1C1:="=base!R2C12:R300000C12"
ActiveWorkbook.Names.Add Name:="emplacement", RefersToR1C1:="=base!R2C14:R300000C14"
ActiveWorkbook.Names.Add Name:="niveau", RefersToR1C1:="=base!R2C15:R300000C15"


Sheets("inventaire").Range("B9").FormulaR1C1 = "=SUMPRODUCT((boite=R1C2)*(niveau=R3C2)*(boite=""""))"
 
G

Guest

Guest
Re : Aide Code VBA

Bonjour,

Tu peux tester ceci:
Code:
Dim DerLigne As Long
DerLigne = Sheets("base").Cells(Application.Rows.Count, 17).End(xlUp).Row
ActiveWorkbook.Names.Add Name:="boite", RefersToR1C1:=Replace("=base!R2C17:R?C17", "?", DerLigne)
ActiveWorkbook.Names.Add Name:="carton", RefersToR1C1:=Replace("=base!R2C18:R?C18", "?", DerLigne)
ActiveWorkbook.Names.Add Name:="reference", RefersToR1C1:=Replace("=base!R2C12:R?C12", "?", DerLigne)
ActiveWorkbook.Names.Add Name:="emplacement", RefersToR1C1:=Replace("=base!R2C14:R?C14", "?", DerLigne)
ActiveWorkbook.Names.Add Name:="niveau", RefersToR1C1:=Replace("=base!R2C15:R3.C15", "?", DerLigne)

pourquoi ne pas créer ces noms dans l'interface excel avec une fonction décaler et Equiv?

A+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Aide Code VBA

Bonjour Mikefly, bonjour le forum,

essaie comme ça :
Code:
With Sheets("Base")
    .Range("L2:L" & Cells(Application.Rows.Count, 12).End(xlUp).Row).Name = "reference"
    .Range("N2:N" & Cells(Application.Rows.Count, 14).End(xlUp).Row).Name = "emplacement"
    .Range("O2:O" & Cells(Application.Rows.Count, 15).End(xlUp).Row).Name = "niveau"
    .Range("Q2:Q" & Cells(Application.Rows.Count, 17).End(xlUp).Row).Name = "boite"
    .Range("R2:R" & Cells(Application.Rows.Count, 18).End(xlUp).Row).Name = "carton"
End With

[Édition]
Bonjour hasco on s'est croisé
 

MIKEFLY62

XLDnaute Junior
Re : Aide Code VBA

Re bonjour,et merci pour votre reponse rapide

après essai, la version de HASCO à premiere vu n'aime pas les vides present dans certaines colonnes et ne calcule pas comme elle devrait le faire jusqu'a la fin sans tenir compte de ces fameuses cellules vides d'ou l'interet a mon avis de prendre en reference la colonne A qui elle dans mon fichier ne dispose d'aucun vide du debut a la fin.

La version de Robert que j'ai modifié pour ActiveWorkbook.Names.Add Name:="niveau", RefersToR1C1:=Replace("=base!R2C15:R3.C15", "?", DerLigne) car il y avait un erreur de frappe "R3.C15" que j'avais capté a l'air de fonctionné même avec les vides.je la solicite encore.....

Ma question a HASCO est il possible de modifier le code proposé une nouvelle fois afin d'accepter les vides et prendre en reference la colonne A qui elle n'a pas de vide dans ma base.

Merci encore @ vous
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Aide Code VBA

Bonjour le fil, bonjour le forum,

Oui, tu as bien compris, si tu met 1 ça te donera la dernìere cellule éditée de la colonne A.
Sinon dans le message #4 je crois que tu confond Robert et Hasco par rapport à la faute de frappe...
 
Dernière édition:

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 845
Messages
2 092 771
Membres
105 531
dernier inscrit
Fidele Lebeni