Création de Vecteurs en VBA

Bonjour,

Je souhaite déclarer un vecteur Vector avec les dimensions Longeur*Largeur de ma Feuil1.

Pouvez vous m'indiquer comment corriger la ligne Dim Vector(SheetLength,Sheetwidth) As String pour que mon code fonctionne svp?

Merci d'avance.

Bien cordialement.

Curveater

Sub PalindromesInVector()

Dim SheetLength As Integer

Dim Sheetwidth As Integer

SheetLength = Worksheets("Feuil1").UsedRange.Rows.Count

Sheetwidth = Worksheets("Feuil1").UsedRange.Columns.Count

Dim Vector(SheetLength, Sheetwidth) As String

For i = 1 To SpreadsheetLength

For j = 1 To SpreasheetWidth

Vector(i, j) = Cells(i, j)

Next

Next

End Sub

Bonjour,

Je ne comprend pas trop ce que tu veux ! La hauteur et largeur de quoi ?

Hauteur = Application.UsableHeight
Largeur = Application.UsableWidth

Je voudrais dimensionner un vecteur à la taille de la range de cellules remplies, les définitions suivantes fonctionnent très bien pour celà:

SheetLength = Worksheets("Feuil1").UsedRange.Rows.Count

Sheetwidth = Worksheets("Feuil1").UsedRange.Columns.Count

Par contre le compilateur bug sur l'expressions suivante:

Dim Vector(SheetLength, Sheetwidth) As String

Le debugging highlight Sheetwidth et donne le msg suivant: Erreur de compilation: Constante requise.

J'aimerais comprendre pourqoi

Merci pour ton aide.

bonjour

essaie ceci

Sub PalindromesInVector()
    Dim SheetLength As Long
    Dim Sheetwidth As Long
    Dim Vector() As String
    SheetLength = Worksheets("Feuil1").UsedRange.Rows.Count
    Sheetwidth = Worksheets("Feuil1").UsedRange.Columns.Count
    ReDim Vector(SheetLength, Sheetwidth)

    For i = 1 To SpreadsheetLength
        For j = 1 To SpreasheetWidth
            Vector(i, j) = Cells(i, j)
        Next
    Next

End Sub

Bonjour,

Merci ça marche avec redim

Le compilateur fourni le msg Erreur d'exécution 9 L'indice n'appartient pas á la sélection tandis que mon code semble cohérent pour la ligne suivante: PalindromeVector(k,j)=Vector(i,j)

Pouvez vous m'éclairer svp:

Function Palindrome(strTest As String) As Long

Dim temp As String

Dim i As Long

Palindrome = 0

For i = 1 To Len(strTest)

If Mid(strTest, i, 1) Like "[0-9A-Za-z]" Then

temp = temp & UCase(Mid(strTest, i, 1))

End If

Next i

If temp = StrReverse(temp) Then

Palindrome = 1

''MsgBox (temp + " est un palidrome")

End If

End Function

Sub PalindromesInVector()

Dim SheetLength As Long

Dim Sheetwidth As Long

Dim PalindromesCounter

PalindromesCounter = 0

SheetLength = Worksheets("Feuil1").UsedRange.Rows.Count

MsgBox (SheetLength)

Sheetwidth = Worksheets("Feuil1").UsedRange.Columns.Count

MsgBox (Sheetwidth)

ReDim Vector(SheetLength, Sheetwidth) As String

For i = 1 To SheetLength

For j = 1 To Sheetwidth

Vector(i, j) = Worksheets("Feuil1").Cells(i, j)

If Palindrome(Vector(i, j)) = 1 Then

PalindromesCounter = PalindromesCounter + 1

End If

Next

Next

Dim k As Long

MsgBox (PalindromesCounter)

ReDim PalindromeVector(PalindromeCounter, Sheetwidth) As String

k = 1

For i = 1 To SheetLength

For j = 1 To Sheetwidth

If Palindrome(Vector(i, j)) = 1 Then

MsgBox (k)

MsgBox (Vector(i, j))

PalindromeVector(k, j) = Vector(i, j)

k = k + 1

End If

Next

Next

For i = 1 To PalindromesCounter

Worksheets("Feuil3").Cells(i, 1) = PalindromeVector(i, 1)

Next

End Sub

bonjour,

je pense que

ReDim PalindromeVector(PalindromeCounter, Sheetwidth) As String

devrait être

ReDim PalindromeVector(PalindromesCounter, Sheetwidth) As String

Merci beaucoup pour votre oeuil de lynx

Rechercher des sujets similaires à "creation vecteurs vba"