Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Demande d'aide SVP :

EL BASRI NAJIB

XLDnaute Nouveau
Bonjour Mes chers amis ;

Bonjour ;

Si possible de m'aider S'il vous plait à trouver une solution à mon code VBA pour faire des Enregistrements sur la même feuille Excel ; c'est à dire, insérer le contenue de la Cellule C7 dans la Ligne C23 et le prochain enregistrement sera enregistré sur C24 etc .... ; avec le Code suivant :

Range("C20").End(xlDown).Offset(1, 0).Select
Range("C7").Value = Range("C12" & Ligne).Value

Et merci d'avance pour votre aide
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
Bonsoir Najib,

je te propose ce code VBA :

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim Ligne&, Colonne%: Application.ScreenUpdating = 0
  Ligne = Target.Row: Colonne = Target.Column
  If Ligne > 20 And Colonne >= 2 And Colonne <= 15 Then
    With Cells(Ligne, "B")
      [F7] = .Value          'B : Nb Clts
      [C7] = .Offset(, 1)    'C : Date Saisie
      [C10] = .Offset(, 2)   'D : Nom Client & Société
      [K13] = .Offset(, 3)   'E : Date Souscription
      [C16] = .Offset(, 4)   'F : Adresse Complète
      [K7] = .Offset(, 8)    'J : Mobile
      [K10] = .Offset(, 9)   'K : Fixe
      [C13] = .Offset(, 10)  'L : Adresse Mail
      [K16] = .Offset(, 12)  'N : Ancienneté
    End With
  End If
End Sub

mais je ne suis pas vraiment sûr que ce soit judicieux de faire ce travail à chaque fois que tu changes la sélection de la feuille ! mais c'est toi qui vois...


voici ton autre sub Ajouter_Client() :

VB:
Sub Ajouter_Client()
  Dim Ligne&
  [C20].End(4)(1).Select
  'ici, tu utilises Ligne alors qu'il n'est pas initialisé !
  '=> Ligne = 0, et ça plante car la ligne 0 n'existe pas !
  Cells(Ligne, "C") = [C7]
End Sub

à part l'erreur mentionnée dans le commentaire, cette sub n'est pas événementielle, donc elle ne doit pas être placée dans le module d'une feuille de calcul ! à la place, il faut la mettre dans un module standard tel que Module1.


évite de joindre des images jpg car ce n'est pas du tout pratique : si on veut travailler à partir de celles-ci, il faudrait recopier les données ; et peu de contributeurs accepteront de perdre du temps pour ça ! aussi, tu risques fort de ne pas avoir de réponse ! le mieux est donc de joindre un fichier Excel anonyme, c'est-à-dire sans données confidentielles ; il faut alors que tu remplaces ces données personnelles par des données fictives.

soan
 

EL BASRI NAJIB

XLDnaute Nouveau
Bonsoir Mr. Soan
Je vous remercie infiniment pour le temps que vous m'avez consacré pour me répondre
Je vais essayer le Code que vous m'avez envoyé. En plus, je vais vous envoyer le Fichier Excel ; et à savoir que les informations qui sont saisies ne sont pas des informations réelles.
En outre, ce que je cherche personnellement, c'est quand je remplie la partie en haut (Formulaire de saisie), qu'ils s'enregistrent par ordre à partir de la ligne C21 et C22 C23 jusqu'au bout, le travail sera fait toujours sur la même Feuille (Feuil2).
Et Merci encore une autre fois pour votre aide
Cordialement.
 
Bonsoir El BASRI NAJIB, le forum [édition: salut @soan ]

Les images et fichiers insérés dans vos messages contenaient des DCP, données à caractère personnel, ainsi que des données concernant des personnes morales, elles ont été supprimées. Cela contrevient au RGPD et à la charte d'utilisation d'Xld que vous trouverez en tête du forum ou ici en direct Charte XLD
Je vous conseille de la lire si vous désirez augmenter vos chances d'avoir une réponse correspondant bien à votre attente.
Vous pouvez intégrer dans votre demande un fichier allégé et anonymisé ou un extrait plus complet du code qui aidera les contributeurs à bien comprendre votre besoin.
Lors de la lecture de la charte, vous remarquerez particulièrement les paragraphes 2.2, 2.3 et 2.4 qui vous préciseront les erreurs à éviter.
N'hésitez à prendre un peu de temps pour exposer clairement votre problème et à utiliser en premier lieu l'outil de recherche du forum, bien conçu, pour savoir si votre problème n'a pas déjà été évoqué dans un des 287875 fils existants, ce qui est souvent le cas lorsqu'on débute.

Bien cordialement, @+
 
Dernière édition:

EL BASRI NAJIB

XLDnaute Nouveau
Bonsoir Mr. Yeahou
Je vous remercie pour votre réponse ainsi que le temps que vous m'avez accordé pour répondre à ma demande. En ce qui concerne les informations qui sont misent en place sur les images, ce sont que des informations facultatives sauf mon adresse Mail qui est réelle, j'été obligé de mettre ces infos pour simplifier la compréhension aux personnes qui vont répondre à ma demande.
Je vous remercie encore une autre fois pour votre réponse.
Merci,
Cordialement.
 
Bonsoir Najib

Je ne pense pas que, dans le fichier, les données de société aient été fictives, c'est aussi de cela qu'il s'agit quand on parle de personnes physiques ou morales. Vos données doivent toutes être anonymisées, c'est une obligation y compris pour les sociétés, les associations, etc... Pour ce qui est de simplifier la compréhension aux contributeurs, il n'y a en aucun cas besoin de poster des données personnelles ou correspondant à une entité légale existante. Une explication claire du problème ou du besoin, un fichier exemple allégé et anonymisé suffiront. Ce genre de demandes est traité très souvent et les contributeurs demandent des précisions quand ils en ont besoin.
Je vous laisse aux bons soins de soan, n'oubliez pas de lire la charte et n'hésitez, après lecture, à modifier le titre du premier post de ce fil pour la respecter.

Je vous souhaite une bonne soirée.
Bien cordialement, @+
 

soan

XLDnaute Barbatruc
Inactif
@EL BASRI NAJIB

tu as écrit : « ce sont que des informations facultatives sauf mon adresse Mail qui est réelle »

tu t'es trompé de mot ! facultatives = non obligatoires ; mais ta phrase correcte est :

« ce ne sont que des informations fictives sauf mon adresse Mail qui est réelle »

informations fictives = informations inventées, donc non réelles.



Yeahou (salut) avait bien compris ce sens-là.

soan
 

EL BASRI NAJIB

XLDnaute Nouveau
Oui c'est vrai je suis désolé pour ces erreurs
au fur est à mesure, je travaille sur d'autres fichiers, et je n'ai pas pris attention à ce que j'ai écris
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Najib, Yeahou,

dans ton post #3, tu as écrit : « En outre, ce que je cherche personnellement, c'est quand je remplis la partie en haut (Formulaire de saisie), qu'ils s'enregistrent par ordre à partir de la ligne C21 et C22 C23 jusqu'au bout, le travail sera fait toujours sur la même Feuille (Feuil2). »

ce n'est pas du tout conseillé de copier les infos au fur et à mesure de la saisie ! car si l'utilisateur se trompe (faute de frappe ou autre) : a) c'est inutile de copier en bas une donnée erronée ; b) il faudrait alors corriger la donnée erronée à la fois sur le formulaire et en bas ; aussi, je te propose cette méthode :

1) l'utilisateur saisit toutes les données du formulaire, et les corrige si besoin ; cela sans copier en bas.

2) quand toutes les données du formulaire ont été saisies, et qu'elles te conviennent, tu cliques alors sur un bouton "Copier" pour faire la copie adéquate des données du formulaire.

avec cette méthode, qui est à la fois plus pratique et plus souple d'utilisation, une sub événementielle n'est pas nécessaire, donc inutile de placer un code VBA dans le module d'une feuille ; à la place, met la sub ci-dessous dans un module standard comme Module1 :​

VB:
Option Explicit

Sub CpyData()
  If ActiveSheet.Name <> "Feuil2" Then Exit Sub
  Dim Ligne&: Application.ScreenUpdating = 0
  Ligne = Cells(Rows.Count, 2).End(3).Row + 1
  With Cells(Ligne, 2)
    .Value = [F7]          'B : Nb Clts
    .Offset(, 1) = [C7]    'C : Date Saisie
    .Offset(, 2) = [C10]   'D : Nom Client & Société
    .Offset(, 3) = [K13]   'E : Date Souscription
    .Offset(, 4) = [C16]   'F : Adresse Complète
    .Offset(, 8) = [K7]    'J : Mobile
    .Offset(, 9) = [K10]   'K : Fixe
    .Offset(, 10) = [C13]  'L : Adresse Mail
    .Offset(, 12) = [K16]  'N : Ancienneté
  End With
End Sub

il ne reste plus qu'à mettre un bouton de commande sur "Feuil2", avec le texte "Copier", et à lui affecter la macro CpyData().​



si je me souviens bien, la ligne 20 était une ligne d'entêtes ; en utilisant la macro, tu verras que ça copie en bas à partir de la ligne 21, puis en dessous.

peut-être qu'avec ce post tu arriveras à faire ce que tu voulais, et que tu n'auras plus besoin d'envoyer un fichier ? sinon, si y'a quelque chose qui ne marche pas correctement, n'hésite pas à joindre ton fichier dans ton prochain post.

à te lire pour avoir ton avis.

soan
 

EL BASRI NAJIB

XLDnaute Nouveau
Bonsoir Mr. Yeahou ;
Je viens de lire votre Message, et je vous remercie infiniment pour ces informations et la prochaine je vais suivre les instructions à la lettre
Merci,
Cordialement.
 

Discussions similaires

Réponses
4
Affichages
455
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…