Solution VBA pour ajouter des valeurs dans un tableau existant Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
C
Cypher
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 4 janvier 2018
Version d'Excel : 2016 FR

Message par Cypher » 4 janvier 2018, 12:55

Bonjour à tous,

D'abord merci a ceux qui vont m'aider et certainement en aider d'autre,

Mon problème c'est que j'ai récupérer un tableau d'un collègue qui est remplie depuis juin 2016 quotidiennement moi je l'ai repris à partir de janvier 2018, sauf ce tableau qui sert a contrôler la conformité des stocks (comptage physique des pièce dans un magasin et comparaison avec une base de donné SQL) sauf que les résulta donné par ce tableau sont faut a cause de mauvaise formules et d'un mauvais remplissage de celui j'ai remis le tout a plat ou presque c'est la que vous allez m'aidez:

dans la façon de remplir ce tableau on a :
B3 pièce compter physiquement
B4 pièces présent dans la base de donné SQL
et ainsi de suite
sauf qu'il remplissais la B4 que lorsque celle ci était différente de B3, or j'ai besoins que la B4 soit systématiquement remplie même si B3=B4 donc je veux faire une macro pour que lorsque B4="" il remplace par B4=B3 et que cette macro soit étendu a tout mon tableau
car j'ai réussi a changer les formules en C et dans tout le reste du tableau par macro mais en ce qui est de la saisie des donné je peut pas faire de copié coller

j'espere être compris j'ai mis un tout petit extrait de mon tableau en fichier joint en prenant la première colonne comme exemple de bon remplissage et les autres celle a modifié pour ne pas avoir de vide
inventaire_V1.xlsx
(14.34 Kio) Téléchargé 6 fois
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'151
Appréciations reçues : 376
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 4 janvier 2018, 13:29

bonjour,

une proposition de solution via une macro (basée sur ton fichier exemple).
Sub aargh()
    With Sheets("feuil1")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        dc = .Cells(3, Columns.Count).End(xlToLeft).Column
        For i = 4 To dl Step 2
            For j = 4 To dc Step 2
                If .Cells(i, j) = "" Then .Cells(i, j) = .Cells(i - 1, j)
            Next j
        Next i
    End With
End Sub
C
Cypher
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 4 janvier 2018
Version d'Excel : 2016 FR

Message par Cypher » 4 janvier 2018, 13:48

Super efficace!! merci, je débute encore sur les macro et le VBA donc je comprend pas tout dans ta formule pour l’étendre a mon tableau donc du coup chez moi cela s'étend de H6 jusqu’à ADU75 a savoir la zone de saisi du nombre de réf ci joint des screen de mon tableau comment dois-je procéder merci d'avance
fin du tableau.PNG
début du tableau.PNG
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'151
Appréciations reçues : 376
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 4 janvier 2018, 14:02

re-bonjour,

voici le code adapté
Sub aargh()
    With Sheets("feuil1")
        dl = .Cells(Rows.Count, "F").End(xlUp).Row 'dernière ligne sur base de la colonne F
        dc = .Cells(6, Columns.Count).End(xlToLeft).Column 'dernière colonne sur base de la ligne 6
        For i =  6 To dl Step 2 'de la ligne 6 à la dernière
            For j = 10 To dc Step 2 ' de la colonne 10 (J) à la dernière
                If .Cells(i, j) = "" Then .Cells(i, j) = .Cells(i - 1, j)
            Next j
        Next i
    End With
End Sub
C
Cypher
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 4 janvier 2018
Version d'Excel : 2016 FR

Message par Cypher » 4 janvier 2018, 14:13

je viens de lancer la bête on va laisser mouliner je te redis si cela a fonctionné correctement, merci en tout cas!
C
Cypher
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 4 janvier 2018
Version d'Excel : 2016 FR

Message par Cypher » 4 janvier 2018, 16:32

Cela fonctionne pas sur mon fichier j'ai essayer de comprendre ta formule même avec un collègue rien ne va comme sur l'exemple qui lui fonctionne , donc j'ai fait une copié de la feuille excel en question pour que tu ai les même donnée, mise en forme position des cellules etc

Merci de me venir en aide
teste_inventaire.xlsm
(907.84 Kio) Téléchargé 4 fois
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'151
Appréciations reçues : 376
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 4 janvier 2018, 17:16

bonjour,

essaie ceci
Sub aargh()
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    With Sheets("fiche de saisie")
        dl = .Cells(5, "F").End(xlDown).Row    'dernière ligne sur base de la colonne F
        dc = .Cells(6, Columns.Count).End(xlToLeft).Column    'dernière colonne sur base de la ligne 6
        For i = 7 To dl Step 2  'de la ligne 7 à la dernière
            For j = 10 To dc Step 2    ' de la colonne 10 (J) à la dernière
                If .Cells(i, j) = "" Then .Cells(i, j) = .Cells(i - 1, j)
            Next j
        Next i
    End With
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub
C
Cypher
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 4 janvier 2018
Version d'Excel : 2016 FR

Message par Cypher » 5 janvier 2018, 08:31

Bonjour, essayer se matin sans aucun soucis merci vraiment tu ma évité de reprendre 1ans et demie de saisie :mrgreen:

Et bonne année a tous
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message