Maximum d'une colonne de tableau

Bonjour,

Je travaille sur Excel 2010 avec un tableau croisé dynamique. Une des colonne représente l'identifiant de chaque objet (1,2,3 ... 1039, 1040...). Voici un exemple réduit du tableau en question :

Grace au VBA j'aimerais que les lignes sans ID soient incrémentées à partir de la plus grande valeur des ID déjà présents dans le tableau. De plus je souhaite travailler avec le nom de la colonne du tableau et pas MAX ("B1" & "B5") car des colonnes ou lignes peuvent être ajoutées.

J'ai déjà essayé ceci mais ça m'indique que la méthode du range global a échoué, en effet il veut des coordonnées de cellules pour définir myrange mais je n'arrive pas à les récupérer...

'on passe sur toutes les cellules de la colonne ID du tableau 1
For Each cell In Range("Tableau1[ID]")

    'si la valeur d'une cellule est vide
    If cell.Value = "" Then

        'on compte le nombre de lignes du tableau 1
        DL = Range("Tableau1").Rows.Count
        'on définit la variable myrange comme étant la colonne ID (de la première à la dernière ligne)
        Set myrange = Range(Range("Tableau1[ID]")(1) & Range("Tableau1[ID]")(DL)) '''''!!!SUR CETTE LIGNE ERREUR
        'on trouve la valeur maximale du range définit juste avant
        lemax = Application.WorksheetFunction.Max(myrange)
        'on met dans la cellule de départ la valeur maximale + 1
        cell.Value = lemax + 1

    End If
'on passe à la cellule suivante
Next

Merci d'avance pour votre aide

Bonne journée !

Bonjour

Je suppose que votre tableau en feuil1 n'est pas un TCD dans votre vrai fichier

Pourquoi vous ne supprimez pas le "Set Myrange" et remplacer la ligne plus bas par celle-ci :

lemax = Application.WorksheetFunction.Max(Range("Tableau1[ID]"))

Oubliez pas la déclaration de vos variables Cell et lemax

Cordialement

Merci je n'aurai pas pensé à ça sans ton aide.

Néanmoins j'ai un message d'erreur me disant "Impossible de lire la propriété Max de la classe Worksheet function" d'après mes recherches ceci est due au fait que certaines cellules ne contiennent pas de valeurs... c'est embêtant je ne sais pas comment je peux passer au travers

Effectivement je me suis emballée ce n'est pas un TCD désolée pour cet abuse de langage.

Quant à mes variables dans le vrai code elles sont déclarées j'ai omis de les remettre mais de tout façon je travaille avec "option explicit".

Néanmoins j'ai un message d'erreur me disant "Impossible de lire la propriété Max de la classe Worksheet function" d'après mes recherches ceci est due au fait que certaines cellules ne contiennent pas de valeurs

Non du tout. Si vous utilisez le code de votre fichier en modifiant la ligne que je vous ai donnée et en désactivant les lignes "DL=...." et "Set Myrange", cela fonctionne

For Each cell In Range("Tableau1[ID]")
    'si la valeur d'une cellule est vide
    If cell.Value = "" Then
        'on trouve la valeur maximale du range définit juste avant
        lemax = Application.WorksheetFunction.Max(Range("Tableau1[ID]"))
        'on met dans la cellule de départ la valeur maximale + 1
        cell.Value = lemax + 1
    End If
'on passe à la cellule suivante
Next cell

Effectivement erreur de ma part merci pour votre aide

Rechercher des sujets similaires à "maximum colonne tableau"