• Initiateur de la discussion Initiateur de la discussion danaxia
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

danaxia

Guest
Bonjour à vous menbre du forum; Voilà Je trouve pas à quoi fait la référence
Downs car je suis en création d'un formulaire de saisie, et j'arrive débocage
Selection.End(x1Dows).Select souligné en jaune.😕
Merci de votre aide. Dan

Je remet un fichier zip c'est celui qui est le complet et toujours les mêmes erreurs, Merc de votre aide Dan
PS : Il me fait tourner en bourrique ce classeur, il me reste à mettre le bouton pour affficher le formulaire?
Bon dimanche
 

Pièces jointes

Dernière modification par un modérateur:
Re : Petits soucis

Bonjour Danaxia, Jean-Marcel, bonjour le forum,

Il y avait d'autres problèmes dans ton code Danaxia. Quand tu lances la macro à partir d'un bouton qui se trouve sur un onglet, tu ne peux pas faire une sélection dans un autre onglet sans précéder la plage par le nom de cet autre onglet. Même si tu l'as sélectionné au préalable...
Exemple :
Code:
Sheets("Base de Donnée").Select
Range("A1").Select
va planter sur la deuxième ligne ! il faut
Code:
Sheets("Base de Donnée").Select
Sheets("Base de Donnée").Range("A1").Select
ou
Code:
With Sheets("Base de Donnée")
     .Select
     .Range("A1").Select
End With

Je te propose ton code modifié (pense à déclarer tes variables) :
Code:
Private Sub CommandButton1_Click()
Dim ligne_active_base As Long 'déclare la variable ligne_active_base
 
Application.ScreenUpdating = False 'masque les changements à l'écran
'transpose_dans_tableau()
'atteindre le formulaire et mémoriserles données
'le bouton est déjà dans cet onglet, inutile de le spécifier...
Range("B1:B7").Copy
'Test pour déterminer la ligne ou coller les infos dans le tableau
With Sheets("Base de données") 'prend en compte l'onglet "Base de données"
    .Select 'sélectionne l'onglet
    If .Range("A2").Value = "" Then 'condition : si A2 est vide
        ligne_active_base = 2 'définit la variable ligne_active_base (A2)
    Else 'sinon
        'définir la variable ligne_active_base (première cellule vide rencontrée dans la colonne A)
        ligne_active_base = .Range("A1").End(xlDown).Offset(1, 0).Row
    End If 'fin de la condition
    'Collage avec transposition
    .Range("A" & ligne_active_base).PasteSpecial Transpose:=True
End With
'Rendre vierge le formulaire
With Sheets("Formulaire")
    .Select
    .Range("B1:B7").ClearContents
    .Range("B1").Select
End With
'Retourner dans le tableau
    With Sheets("Base de données")
        .Select
        .Range("A1").Select
    End With
Application.ScreenUpdating = True 'affiche les changements à l'écran
End Sub
 
Dernière édition:
Re : Petits soucis

Bonjour Danaxia, Jean-Marcel, bonjour le forum,

Il y avait d'autres problèmes dans ton code Danaxia. Quand tu lances la macro à partir d'un bouton qui se trouve sur un onglet, tu ne peux pas faire une sélection dans un autre onglet sans précéder la plage par le nom de cet autre onglet. Même si tu l'as sélectionné au préalable...
Exemple :
Code:
Sheets("Base de Donnée").Select
Range("A1").Select
va planter sur la deuxième ligne ! il faut
Code:
Sheets("Base de Donnée").Select
Sheets("Base de Donnée").Range("A1").Select
ou
Code:
With Sheets("Base de Donnée")
     .Select
     .Range("A1").Select
End With

Je te propose ton code modifié (pense à déclarer tes variables) :
Code:
Private Sub CommandButton1_Click()
Dim ligne_active_base As Long 'déclare la variable ligne_active_base
 
Application.ScreenUpdating = False 'masque les changements à l'écran
'transpose_dans_tableau()
'atteindre le formulaire et mémoriserles données
'le bouton est déjà dans cet onglet, inutile de le spécifier...
Range("B1:B7").Copy
'Test pour déterminer la ligne ou coller les infos dans le tableau
With Sheets("Base de données") 'prend en compte l'onglet "Base de données"
    .Select 'sélectionne l'onglet
    If .Range("A2").Value = "" Then 'condition : si A2 est vide
        ligne_active_base = 2 'définit la variable ligne_active_base (A2)
    Else 'sinon
        'définir la variable ligne_active_base (première cellule vide rencontrée dans la colonne A)
        ligne_active_base = .Range("A1").End(xlDown).Offset(1, 0).Row
    End If 'fin de la condition
    'Collage avec transposition
    .Range("A" & ligne_active_base).PasteSpecial Transpose:=True
End With
'Rendre vierge le formulaire
With Sheets("Formulaire")
    .Select
    .Range("B1:B7").ClearContents
    .Range("B1").Select
End With
'Retourner dans le tableau
    With Sheets("Base de données")
        .Select
        .Range("A1").Select
    End With
Application.ScreenUpdating = True 'affiche les changements à l'écran
End Sub

Vraiment un grand merci à toi robert tu es le meilleur, passe un bon dimanche.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour