Modification compteur colonne

Bonjour,

Dans le cadre de suivis de longues durées, une macro avait été créée avec un compteur de colonne utilisant la fonction Chr et les codes de 65 à 90 (alphabet) pour extraire les données de plusieurs feuilles à partir d'une date renseignée sur un autre onglet (1 date - 1 colonne).

Le problème est que j'ai à présent un suivi qui arrive sur la colonne AA et la macro ne fonctionne plus.

Est-ce qu'il est possible de modifier la macro avec un compteur colonne "infini" ou trouver directement la colonne abritant la date recherchée ?

Ci-dessous le programme pour une feuille, le code se répète à l'identique pour les autres piézo.

Le compteur a substituer concerne les 2 lignes "For code = 65 to 90" et " colonne = Chr (code)".

Sub Tableau()
'
' Macro1 Macro
' Macro enregistrée le 06/01/2011
'
Dim Dateanalyse As Date
Dim i, code, test As Integer

Dateanalyse = Sheets("Synthèse dernière tounée").Range("A2").Value

'Piézo Rognac

test = 0
For code = 65 To 90
        colonne = Chr(code)
        If Sheets("Piézo Rognac").Range(colonne & "2").Value = Dateanalyse Then
            test = 1
            For i = 4 To 8
                Sheets("Synthèse dernière tounée").Range("B" & i).Value = Sheets("Piézo Rognac").Range(colonne & i).Value
            Next i
            i = 10
                Sheets("Synthèse dernière tounée").Range("B" & i).Value = Sheets("Piézo Rognac").Range(colonne & i).Value
            For i = 12 To 30
                Sheets("Synthèse dernière tounée").Range("B" & i).Value = Sheets("Piézo Rognac").Range(colonne & i).Value
            Next i
            For i = 32 To 36
                Sheets("Synthèse dernière tounée").Range("B" & i).Value = Sheets("Piézo Rognac").Range(colonne & i).Value
            Next i
        Else
            If test = 0 Then
                For i = 4 To 8
                    Sheets("Synthèse dernière tounée").Range("B" & i).Value = "-"
                Next i
                i = 10
                Sheets("Synthèse dernière tounée").Range("B" & i).Value = "-"
                For i = 12 To 30
                    Sheets("Synthèse dernière tounée").Range("B" & i).Value = "-"
                Next i
                For i = 32 To 36
                    Sheets("Synthèse dernière tounée").Range("B" & i).Value = "-"
                Next i
            Else
            End If
        End If
Next code

Je comprends le code mais ai toujours du mal à le créer, donc modifier l'existant de quelqu'un d'autre sans tout casser...

Merci de votre aide :)

Bonjour,

tu n'es pas obligé de t'embêter avec les lettres des colonnes :

    Dim colonne As Long
    For colonne = 1 To 300
        If Sheets("Piézo Rognac").Cells(2, colonne).Value = Dateanalyse Then
            '...
        End If 
        '...
    Next colonne

et changer tous tes .Range en .Cells(ligne, colonne)
eric

Salut Ellundril,
Salut Eriiic,

sur le fond, Eric a raison mais pour la forme et la connaissance, tu peux utiliser une fonction (souvent nécessaire malgré tout) qui te calcule ça facilement

For code = 65 To 90
        colonne = fctCol(code)

La fonction.

Public Function fctCol(ByVal iCol%) As String
'
fctCol = Split(Columns(iCol).Address(ColumnAbsolute:=False), ":")(1)
'
End Function


A+

ça fonctionne nickel ! Et avec 300 colonnes, j'aurais 150 ans la prochaine fois qu'il faudra modifier donc parfait

Ok, je ne connaissais pas la fonction colonne en code seulement celle que l'on tape directement dans le tableur, ça me sera bien utile aussi.

Merci à vous !

ce qu'il faut retenir c'est Cells(ligne, colonne) qui est une autre syntaxe pour désigner une cellule.

Mais attention que ça s'applique à l'objet mis devant :

    Dim pl As Range
    MsgBox Cells(3, 2).Address
    Set pl = Range("D5:G15")
    MsgBox pl.Cells(3, 2).Address

Le 1er, sans précision s'applique à toute la feuille et te retourne donc $B$3.
Le 2nd s'applique à la plage "D5:G15" dont la 3e ligne, 2e colonne est $E$7
eric

Rechercher des sujets similaires à "modification compteur colonne"