IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Trou dans mon code Cel.Offset pour intégrer les données dans les colonnes sur ligne aléatoire


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Trou dans mon code Cel.Offset pour intégrer les données dans les colonnes sur ligne aléatoire
    Bonjour à tout.e.s,
    Malgré mes recherches je n'ai pas réussi à trouver de réponse qui m'aide dans la mine d'or de ce forum.
    je travaille depuis un petit moment sur un outil collaboratif pour lequel j'ai réalisé pas mal d'automatisation pour sécuriser le format de saisie.

    J'ai 2 formulaires actifs sur ce fichier. le premier pour "déclarer un signalement" le second pour "compléter un signalement" avec rappel des données déjà déclarées dans les textbox du formulaire (numéro de ligne récupéré via numéro de signalement en colonne A).

    J'ai réussi donc cette première partie mais je bloque totalement sur la finalisation pour l'intégration des données du 2nd formulaire "compléter un signalement" via un CommandButton.
    En effet, le formulaire se ferme après validation mais les données saisies ou modifiées "s'évanouissent" et n'apparaissent nulle part.

    Je comprends bien qu'il me manque la Dim as integer pour que cela fonctionne mais je n'arrive pas à démêler le noeud...
    Vous trouverez ci-dessous le code saisi.

    Je vous remercie d'avance pour votre aide et vos remarques qui me permettront d'avancer et de progresser (je précise que je suis très débutante dans la programmation donc vous prie également d'excuser mes probables maladresses pour vos yeux experts)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Private Sub CommandButton2_Click()
     
        Dim Plage As Range
        Dim Cel As Range
        Dim Completer As Integer ' Déclaration des données signal
     
        'Dans la feuilles données signaux actifs colonne A
        With Worksheets("Signaux_actifs")
     
            Set Plage = .Range(.Cells(8, 9), .Cells(.Rows.Count, 1).End(xlUp))
     
        End With
     
        'On recherche dans la base de données la ligne de la valeur N° signal inscrite dans la Textbox1
     
        '>>>> de cette façon, l'expression exacte est recherchée mais la case à son importance
        Set Cel = Plage.Find(TextBox1.Text, , xlValues, xlWhole)
     
        If Not Cel Is Nothing Then
     
            'On intégre les données signal dans la feuille Signaux_actifs dans la colonne A et dans la ligne i
     
            'Cel.Offset(0, 12) signifie qu'on décale de zéro ligne (donc sur la même ligne que la cellule en cours "Cel") et de 12 colonnes
            'la plage de recherche étant en colonne A donc si tu veux avoir la valeur dans une autre colonne le décalage doit être de :
            '12 pour la colonne M
            '13 pour la colonne N
            'et 14 pour la colonne O
     
            Cel.Offset(0, 12) = TextBox7.Text
            Cel.Offset(0, 3) = TextBox4.Text
            Cel.Offset(0, 9) = TextBox5.Text
            Cel.Offset(0, 8) = TextBox6.Text
            Cel.Offset(0, 10) = TextBox7.Text
            Cel.Offset(0, 1) = TextBox13.Text
     
            ' On efface les Textbox pour qu'elle soit vide à la réouverture de l'USF
            TextBox2.Text = ""
            TextBox3.Text = ""
            TextBox4.Text = ""
            TextBox5.Text = ""
            TextBox6.Text = ""
            TextBox7.Text = ""
            TextBox13.Text = ""
     
     
        End If
     
        Compléter_un_signal.Hide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Mo_31 Voir le message
    Bonjour,

    Si la plage de recherche est dans la colonne A, le code devrait plutôt être celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Plage = .Range(.Cells(8, 1), .Cells(.Rows.Count, 1).End(xlUp))

  3. #3
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Solution
    Bonjour,
    après ultime tentative seule j'ai trouvé
    mon code était faux au niveau de la commande Cel.offset
    Cela ne renvoyait pas aux "bonnes" lignes/colonnes puisque je n'avais pas pris en compte que colonne A = 0, donc B =1, C=2...ETC
    merci à ceux qui auront pris le temps de lire mon message !
    belle journée et bel été à tout.e.s

  4. #4
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Bonjour,

    Si la plage de recherche est dans la colonne A, le code devrait plutôt être celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Plage = .Range(.Cells(8, 1), .Cells(.Rows.Count, 1).End(xlUp))
    Exact ! merci ! cela faisait parti de mon erreur de base !
    Merci pour votre aide !!!
    cela fonctionne maintenant

Discussions similaires

  1. [OL-2010] VBA pour intégrer les dates de réceptions dans les objets ?
    Par Megajav dans le forum Outlook
    Réponses: 4
    Dernier message: 01/07/2015, 10h50
  2. Réponses: 0
    Dernier message: 21/04/2015, 13h39
  3. Réponses: 0
    Dernier message: 16/04/2015, 21h03
  4. Réponses: 2
    Dernier message: 01/08/2012, 09h25
  5. [XL-2007] Macro pour transposer les colonnes en lignes
    Par boubadia dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/10/2011, 20h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo