Macro pour la mise à jour

Résolu
lali -  
CaPiT Messages postés 622 Statut Membre -
Bonjour,

Je suis stagiaire et je voudrai faire une macro qui permet de faire des mises à jour sur un page excel mais j'ai une connaisssance limitée sur les macros.
Veuillez m'aider .
Merci d'avance :-)
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. CaPiT Messages postés 622 Statut Membre 51
     
    Bonjour à toi.

    Qu'entends-tu par mise à jour? Peux tu nous décrire un peux plus tes souhaits?
    0
    1. lali
       
      bah en fait par exemple j'ai un ensemble de données et j'aimerai faire une macro qui vérifie si le nom existe déja si c'est le cas alors elle met à jour les données(elle les modifies) et elle garde une même ligne ayant un nom unique, sinon elle crée une nouvelle ligne et elle saisie les données.Sachant que ces données sont extraites à partir de open workBench
      0
    2. lali
       
      salut
      Merci pour ta réponse

      Ce que je veux faire c'est avoir une macro qui permet de vérifier les doublons sur la première colonne et et modifier la ligne dont le nom existe en double par ses données c'est ce que j'appelle mise à jour ,sachant que le nom qui est unique je garde les même données.


      Merci d'avance pour la réponse :-)
      0
      1. CaPiT Messages postés 622 Statut Membre 51 > lali
         
        Bonjour, je comprends mieux ton problème, mais je ne vois pas trop comment y répondre en pratique.

        J'aurais fait un bouton sur lequel tu mets une macro.
        Puis tu fais deux boucles. la 2eme qui vérifie un enregistrement(cellule) avec les autres et la 1ere qui change d'enregistrement.
        Dans la 2eme boucle, tu mets une condition, si elle existe tu deletes sinon tu laisses.
        Tu vois le principe?

        Si j'ai un peu de temps aujourd'hui j'essaierais de t'élaborer ce code (si tu n'y arrives pas^^)
        0
      2. lali > CaPiT Messages postés 622 Statut Membre
         
        Bonjour
        Merci pour ta réponse

        Je vais essayer d'appliquer ce que tu m'as dit et si j'ai un problème je te tiendrai au courant :-)

        Merci encore
        0
  2. CaPiT Messages postés 622 Statut Membre 51
     
    Ok, bonne chance.

    N'hésite pas à afficher ton code en cas de problème.
    0
  3. CaPiT Messages postés 622 Statut Membre 51
     
    Voilà, moi j'ai ça, ça marche plutôt bien:

    Private Sub CommandButton1_Click()
    Dim cell1, cell2 As String
    Dim i, j, k As Integer

    k = 0
    For i = 1 To 5
    cell1 = Replace("A" + Str(i), " ", "")

    For j = 2 To 5
    cell2 = Replace("A" + Str(j), " ", "")
    If cell1 <> cell2 And Range(cell1).Value = Range(cell2).Value Then
    Rows(j).Delete shift:=xlUp
    k = k + 1
    End If
    Next j
    Next i

    If k <> 0 Then
    MsgBox Sqr(k) & " ligne(s) supprimée(s)"
    Else
    MsgBox "Aucun Doublon"
    End If

    End Sub

    Ca va me servir à moi aussi, donc je me suis dépéché de le faire.
    0
  4. lali
     
    oupsssssssssssssss

    sorry sorry

    Je vien de me rendre compte que le i va jusqu'à 5 ce qui explique mon erreur.ça ne vient pas de toi.

    Excuse moi.
    Et merci encore une fois.

    En fait je voudrai te montrer un code que j'ai fait et qui ne marche pas comme je veux; en fait j'aimerai qu'il me fasse la somme de toutes les case de la colonne C tant que la case de la colonne A n'est pas "".

    Je t'envoie le code et ça me ferait énormément plaisir si tu me réponds pour me dire l'erreur

    Merci :-)

    Sub Macro1()

    Dim i As Integer
    Dim j As Integer
    Dim somme As Long

    j = 2
    For i = 1 To 11
    'Boucle sur les cellules de la colonne A
    'On sort de la boucle si la cellule testée (Cells(i, 1)) est vide
    While Not IsEmpty(Cells(i, 1))

    somme = Range("C" & i).Value
    While IsEmpty(Cells(j, 1))
    somme = somme + Range("C" & j).Value
    Range("B" & i).Value = somme
    j = j + 1

    Wend
    Next i
    Wend

    End Sub
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. CaPiT Messages postés 622 Statut Membre 51
     
    Le code que je t'es proposé, y'a quelques p'tits trucs a rajoutés.
    Déja j = 1 dans la boucle, puis 5 ce n'était qu'un exemple ;), et surment d'autres choses à revoir.

    Concernant ton code y'a deux choses (pour le moment car ça fonctionne pas ^^)
    D'une tu ouvres une boucle for, puis une while puis une while. Mais quand tu fermes, tu fermes une while puis for puis while. Donc erreur ;)
    Il faut aussi que tu déclares somme = 0 au début on sait jamais.
    De plus il me semble que ton code s'execute à l'infini donc plantage.
    0
  7. lali
     
    Salut

    désolé(e) de te déranger encore une fois mais en fait le code que tu m'as passé ne fait pas les mises à jour il supprime juste les lignes qui se répètent à partir de la deuxième fois(je veux dire il ne modifie pas les valeurs de la première ligne supposant par les valeurs de la 5ème ligne par exemple ( sachant qur le nom de la 5 éme ligne est le même que celui de la première)

    Cei dit le code que je t'ai envoyé marche maintenant ,je l'ai corrigé.

    Merci encore une fois
    0
  8. CaPiT Messages postés 622 Statut Membre 51
     
    Ok si ça marche c'est cool ;)

    Met ton sujet en "Résolu"

    Bonne soirée !
    0