Aide vba

Fermé
la pioche - 17 mars 2009 à 09:17
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 17 mars 2009 à 13:20
Bonjour,
j'ai un petit problème
j'ai une procédure qui me permet de faire le lien entre une feuille de saisie excel et une base de donnée
Cette procédure est simplement la pour actionner celle d'après
<code>Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address
    Case "$N$9"
    Dim Plage As Range, Intersection As Range
    'Lorsque l'on touche en N9 cela appelle nos procédures
    'Définition de cellule
        Set Plage = Range("N9")
        Set Intersection = Application.Intersect(Target, Plage)
            Colonne = Target.Column
            Ligne = Target.Row
        If Not (Intersection Is Nothing) Then
            Call RepportStructure(Target)
        End If
End sub


'Procédure de lien entre le choix de l'opérateur dans la feuille de choix et celle de la base de donnée
Sub RepportStructure(cible As Range)
Dim Cellule1, TypeStructure, Structure, Ligne1, Colonne1, Colonne2, Ligne2 As Variant
If cible <> "" Then
Structure = Cells(Ligne, Colonne - 1)
For Each Cellule1 In Worksheets("BDVoirie").Range("essai")
If Cellule1 = cible Then
Colonne2 = Cellule1.Column
Ligne2 = Cellule1.Row
'Comment lui dire de faire la recherche dans la plage de cellule grace au variable Ligne2 et Colonne2
'Par exemple si Ligne2 = 1 et Colonne2 = 1
'il faut que ma recherche s'éxécute de A3 a P3
'Si Ligne2 = 11 et Colonne2 = 1
'il faut que ma recherche s'éxécute de A13 a P13

For Each TypeStructure In Worksheets("BDVoirie").Range(Structure)
If TypeStructure = cible Then
Colonne1 = TypeStructure.Column
Ligne1 = TypeStructure.Row
'Recopie les cellules de la base de donnée vers la feuille de saisie
Sheets("Donnée chaussée").Cells(Ligne + 2, Colonne - 1).Value = Sheets("BDVoirie").Cells(Ligne1 + 2, Colonne1).Value
Sheets("Donnée chaussée").Cells(Ligne + 3, Colonne - 1).Value = Sheets("BDVoirie").Cells(Ligne1 + 3, Colonne1).Value
Sheets("Donnée chaussée").Cells(Ligne + 4, Colonne - 1).Value = Sheets("BDVoirie").Cells(Ligne1 + 4, Colonne1).Value
Sheets("Donnée chaussée").Cells(Ligne + 5, Colonne - 1).Value = Sheets("BDVoirie").Cells(Ligne1 + 5, Colonne1).Value

Sheets("Donnée chaussée").Cells(Ligne + 2, Colonne + 1).Value = Sheets("BDVoirie").Cells(Ligne1 + 2, Colonne1 + 2).Value
Sheets("Donnée chaussée").Cells(Ligne + 3, Colonne + 1).Value = Sheets("BDVoirie").Cells(Ligne1 + 3, Colonne1 + 2).Value
Sheets("Donnée chaussée").Cells(Ligne + 4, Colonne + 1).Value = Sheets("BDVoirie").Cells(Ligne1 + 4, Colonne1 + 2).Value
Sheets("Donnée chaussée").Cells(Ligne + 5, Colonne + 1).Value = Sheets("BDVoirie").Cells(Ligne1 + 5, Colonne1 + 2).Value
End If
Next
End If
Next
End If
End Sub
</code>
merci

1 réponse

Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
17 mars 2009 à 13:20
'Comment lui dire de faire la recherche dans la plage de cellule grace au variable Ligne2 et Colonne2
'Par exemple si Ligne2 = 1 et Colonne2 = 1
'il faut que ma recherche s'éxécute de A3 a P3
'Si Ligne2 = 11 et Colonne2 = 1
'il faut que ma recherche s'éxécute de A13 a P13


pour SELECTIONNER ou NOMMER ta zone de recherche
tu fais

Range("A1").Offset(ligne2 + 2, colonne2).Resize(1, 16).Select
Le reste c'est comme tu as fais.

A+
0