Bonjour,
J' ai un soucis avec une macro VBA-Excel. Je sélectionne une cellule dans la feuille 1. La macro récupère La civilité,le nom et le prénom d' un individu dans un tableau . Ensuite cette même macro lance une recherche en feuille 2 pour trouver la ligne correspondant à cet individu.
Je veux sélectionner les 7 colonnes de cette ligne pour en effacer les données.
Comme le titre l' indique, j' ai une erreur 1004. Je pense que cette erreur vient de la méthode Range car lorsque je remplace les variables par le nom exact de colonnes, cela fonctionne. Pourriez-vous me dire ou je bute.
Code de la macro en développement:
Option Explicit
Option Base 0
Sub MonPremierTableau() '---------- Tableau à taille fixe ----------
'Définit la taille du tableau et le type de données.
Dim TblSrc(2) As String, TblCbl(2), VlrSrc As String, VlrCbl As String
Dim Cvlt As String, Nom As String, Prenom As String
Dim Cvlt2 As String, Nom2 As String, Prenom2 As String
Dim Lgn As Integer, Cln As Integer, i As Integer, x As Integer
Dim Plage As Range
' Sélectionner une ligne et colonne
Lgn = ActiveCell.Row
Cln = 1
' Récupération des valeurs contenues
Cvlt = Sheets(1).Cells(Lgn, Cln).Value
Nom = Sheets(1).Cells(Lgn, Cln + 1).Value
Prenom = Sheets(1).Cells(Lgn, Cln + 2).Value
'Alimente les éléments du tableau
TblSrc(0) = Cvlt
TblSrc(1) = Nom
TblSrc(2) = Prenom
' Contenu du tableau source
VlrSrc = Join(TblSrc, " , ")
' Recherche de la ligne en feuille 2 de l' individu sélectionné en feuille 1
For x = 3 To 11
Cvlt2 = Sheets(2).Cells(x, 1).Value
Nom2 = Sheets(2).Cells(x, 2).Value
Prenom2 = Sheets(2).Cells(x, 3).Value
Ndc = x
TblCbl(0) = Cvlt2
TblCbl(1) = Nom2
TblCbl(2) = Prenom2
VlrCbl = Join(TblCbl, " , ")
If VlrCbl = VlrSrc Then
Sheets(2).Activate
Set Plage = Range(Cells(x, 1), Cells(x, 7)).Select
Sheets(2).Range(Plage).Select
End If
Next x
End Sub
L' erreur se déclanche sur la ligne;
Set Plage = Range(Cells(x, 1), Cells(x, 7)).Select
Si vous le juger nécessaire, je pourrai un fichier Excel
Cordialement