Formulaire avec vba - excel

fafa -  
 fafa -
Bonjour,

j'ai saisi ce code dans vba :

Sub transpose_dans_tableau()
'Atteindre le formulaire et mémoriser les données
Sheets("Formulaire-environnement").Select
Range("B1 : B12").Select
Selection.Copy
'Test pour déterminer la ligne où coller les informations dans le tableau
Sheets("Base-environnement").Select
valeurA2 = Range("A2").Value
If valeurA2 = "" Then
Range("A2").Select
Else
Range("A1").Select
Selection.End(x1Down).Select
ligne_active_base = ActiveCell.Row
Range("A" & ligne_active_base + 1).Select
End If
'Mémorise le numéro de la ligne où coller les données
ligne_active_base = ActiveCell.Row
'Collage avec transposition
Range("A" & ligne_active_base).Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
Operation:=xlNone, skipblanks:=False, Transpose:=True
'Rendre vierge le formulaire
Sheets("Formulaire-environnement").Select
Range("B1:B12").Select
Selection.ClearContents
Range("B1").Select
'Retourner dans le tableau
Sheets("Base-environnement").Select
Range("A1").Select
End Sub

L'opération fonctionne bien pour la première "fiche" mais si je resaisie une fiche, ça me donne une erreur 400.
Que puis-je faire ?
Je précise que je ne connais pas du tout vba donc j'utilise des codes trouvés sur le net.

Merci

1 réponse

  1. Utilisateur anonyme
     
    Bonjour,

    Suggestion :

    Sub Essai()
    
        Dim Ligne_Active_Base As Long
    
        Range("A65535").End(xlUp).Select
        Ligne_Active_Base = ActiveCell.Row
        Range("A" & (Ligne_Active_Base + 1)).Select
    
    End Sub
    '
    


    ce qui donne :

    Option Explicit
    
    Sub Transpose_Dans_Tableau()
    
        'Atteindre le formulaire et mémoriser les données
        Sheets("Formulaire-environnement").Select
        Range("B1 : B12").Select
        Selection.Copy
        
        'Test pour déterminer la ligne où coller les informations dans le tableau
        Sheets("Base-environnement").Select
        valeurA2 = Range("A2").Value
        If valeurA2 = "" Then
            Range("A2").Select
        Else
            Range("A65535").End(xlUp).Select
            Ligne_Active_Base = ActiveCell.Row
            Range("A" & (Ligne_Active_Base + 1)).Select
        End If
        
        'Mémorise le numéro de la ligne où coller les données
        Ligne_Active_Base = ActiveCell.Row
        'Collage avec transposition
        Range("A" & Ligne_Active_Base).Select
        Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
        Operation:=xlNone, skipblanks:=False, Transpose:=True
        'Rendre vierge le formulaire
        Sheets("Formulaire-environnement").Select
        Range("B1:B12").Select
        Selection.ClearContents
        Range("B1").Select
        'Retourner dans le tableau
        Sheets("Base-environnement").Select
        Range("A1").Select
    
    End Sub
    '
    

    Lupin
    0
    1. fafa
       
      ca marche parfaitement . Merci
      0