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 :

Code pour modifier une bd


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 615
    Points : 212
    Points
    212
    Par défaut Code pour modifier une bd
    Bjr forum. Bjr Patrick Toulon...et les autres pros
    J'avais posté sur la modification d'une BD avec le code qui fonctionnait et après non plus.
    Après plusieurs hypothèses j'ai voulu savoir si il était possible d'associer la récupération des numéros de lignes a la listbox. Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim i as integer= listbox.listindex+2 ' pas d'en-tête pour la listbox
    With sheets(" source ")
    .range("A"& i ,ligne.value)=textbox
    End with

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut Re : tableau avec evaluate
    bonjour niamké
    non ca s'ecrit pas comme ca

    tout d'abors ton dim
    dim i as integer= listbox.listindex+2 ' pas d'en-tête pour la listbox

    c'est comme ca que l'on ecrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim i as integer
    i= listbox.listindex+2 ' pas d'en-tête pour la listbox
    ensuite ton range

    la je ne comprends pas ce que tu veux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With sheets(" source ")
    .range("A"& i ,ligne.value)=textbox
    End with
    1. confondrais tu pas listbox.listindex avec listbox.value
    2. voudrais tu transférer ton textbox dans la cellule en colonne A correspondant a la valeur de la listbox au quel cas il faut faire un find
    3. ligne c''est quoi un textbox une listbox
    4. quand on utilise l'object range addressé en string on utilise la lettre colonne et numero de ligne il n'y a pas de 3°argument

  3. #3
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 615
    Points : 212
    Points
    212
    Par défaut
    Ligne= textbox
    Ce textbox récupère le numéro de la ligne se trouvant dans la feuille excel. J'ai utilisé la fonction ligne()
    En fait ce code fonctionnait bien. Mais depuis un moment quand je modifie les données, rien ne se passe. Ce pourquoi j'ai voulu savoir si on pouvait concaténer avec les numéros de lignes

    Tu pourrais jeter un coup d'oeil au sujet que j'avais posté
    Modifier une base de données via une listbox et rafraichir la lisbox

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8

  5. #5
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 615
    Points : 212
    Points
    212
    Par défaut
    Dans l'autre poste un modérateur me l'a déjà proposé mais ce n'est pas ,si je me le permets, ce que je voudrais. J'ai essayé d'étudier en profondeur mais je n' ai pas pu l'adapter ou trouver des éléments directeurs.

  6. #6
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut
    Bonjour,

    >Après plusieurs hypothèses j'ai voulu savoir si il était possible d'associer la récupération des numéros de lignes a la listbox

    Le principe consiste à stocker le numéro d'enregistrement dans la ListBox:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      TblBD = Range(NomTableau).Resize(, NbCol + 1).Value          ' Array: + rapide
      For i = 1 To UBound(TblBD): TblBD(i, NbCol + 1) = i: Next i  ' No enregistrement

    Exemple en PJ


    Boisgontier

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour boisgontierjacques

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TblBD = Range(NomTableau).Resize(, NbCol + 1).Value          ' Array: + rapide
      For i = 1 To UBound(TblBD): TblBD(i, NbCol +1   =Range(NomTableau).row) +(i-1): Next i  ' No enregistrement
    en case de range et non de tableau structuré le row exact est bien aussi

  8. #8
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 615
    Points : 212
    Points
    212
    Par défaut
    Merci à vous boigonthier et Patrick.
    Il reste une dernière chose à régler en rapport avec le sujet. Voici le code complet de mon projet sur la modification ( modifier une BD)
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    'permet la modification des anciennes données des élèves
    '************************************************************
    Private Sub Bt_modif1_Click()
    On Error Resume Next
    Dim wb As Workbook
    Dim i As Integer
     On Error Resume Next
        Application.ScreenUpdating = False
     
            With Sheets("source")
     
                If T_prenoms1 <> "" Or T_sexe1 <> "" Or T_extrait1 <> "" Then
        If MsgBox(" Voulez-vous modifier les reférences de " & T_prenoms1 & "?", vbQuestion + vbYesNo, "MESSAGE DE CONFIRMATION") _
        <> vbYes Then Exit Sub
        i = ListBox2.ListIndex + 2
            .Range("b" & i) = Me.T_prenoms1
            .Range("d" & i) = Me.T_sexe1
            .Range("c" & i) = Me.T_niveauC
            .Range("e" & i) = Me.T_ecoleC
            .Range("f" & i) = Me.T_nationalite1
            .Range("g" & i) = Me.T_date1
            .Range("h" & i) = Me.T_lieu1
            .Range("i" & i) = Me.T_localite1
            .Range("j" & i) = Me.T_extrait1
            .Range("k" & i) = Me.T_lieu_etabli1
            .Range("l" & i) = Me.T_date_etabli1
            .Range("m" & i) = Me.T_sp1
            .Range("n" & i) = Me.T_niveauA
            .Range("o" & i) = Me.T_ecoleA
            .Range("p" & i) = Me.T_dfaA
            .Range("q" & i) = Me.T_niveauD
            .Range("r" & i) = Me.T_ecoleD
            .Range("s" & i) = Me.T_dfaB
            .Range("ac" & i) = Me.T_dossier_extrait
            .Hyperlinks.Add Anchor:=Range("ac" & i), Address:=T_dossier_extrait
            .Range("ab" & i) = Me.T_photo2
            .Range("t" & i) = Me.T_dfaC
            .Range("u" & i) = Me.T_pere1
            .Range("v" & i) = Me.T_metier
            .Range("w" & i) = Me.T_mere1
            .Range("x" & i) = Me.T_metier1
            .Range("y" & i) = Me.T_contact0
            .Range("a" & i) = Me.T_matricule
     
     
     
          MsgBox " Les références de l'élève " & T_prenoms1 & " ont été mise à jour.Vous pouvez continuer les modifications", vbInformation
          End If
      End With
     
       'ListBox2.Clear
     
        Label311.Caption = ""
            Me.Image4.Picture = Nothing
            T_prenoms1 = ""
            T_sexe1 = ""
            T_date1 = ""
            T_lieu1 = ""
            T_nationalite1 = ""
            T_localite1 = ""
            T_extrait1 = ""
            T_date_etabli1 = ""
            T_lieu_etabli1 = ""
            T_sp1 = ""
            T_niveauA = ""
            T_ecoleA = ""
            T_dfaA = ""
            T_niveauD = ""
            T_ecoleD = ""
            T_dfaB = ""
            T_niveauC = ""
            T_ecoleC = ""
            T_dfaC = ""
            T_metier = ""
            T_metier1 = ""
            T_pere1 = ""
            T_mere1 = ""
            T_contact0 = ""
            t_dossier_exrait = ""
            T_photo2 = ""
            T_matricule = ""
            Label74 = ""
     
            'rafraichir le tableau
     
                      TBlBD = [tab_1].Value 
      Me.ListBox2.List = TBlBD
         Me.ListBox2.ColumnCount = [tab_1].Columns.Count
            Me.ListBox2.ColumnWidths = "80;150;100;100;100;100;100;100;100;100;100;100;100;100;100;100;100;100;80;100;150;100;150;100;85;85;85;100"
     
     
     
    End Sub
    Au début la modification s'exécutait mais à présent quand j'ajoute les photos rien ne se passe alors que d'autres photos ont été ajoutés avec le même code.
    Pourriez vous m' expliquer en clair pourquoi ce problème?
    Merci.

  9. #9
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut

    >en case de range et non de tableau structuré le row exact est bien aussi


    Je fonctionne en relatif par rapport au tableau(qui peut être déplacé sur une autre feuille n'importe où)

    Boisgontier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2013] Code pour modifier le label des boutons d'une boite de dialogue
    Par rag83 dans le forum VBA Access
    Réponses: 3
    Dernier message: 08/12/2015, 22h49
  2. code java pour modifier une ligne dans un fichier txt
    Par pacomou dans le forum Général Java
    Réponses: 1
    Dernier message: 03/09/2009, 16h23
  3. Methode simple pour modifier une image
    Par arsenik7 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 02/02/2006, 09h22
  4. Comment faire pour modifier une ligne dans une DBGrid?
    Par Nico62 dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/03/2005, 13h24
  5. Réponses: 8
    Dernier message: 23/03/2005, 20h28

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