2017-02-10 3 views
0

J'essaie de créer un processus d'approbation en ce moment, et pour ce faire, j'ai une feuille de résumé, qui montre en cours les détails des offres, puis une feuille de détail, où je Je garde un journal de ce qui est approuvé. Actuellement, vous tapez les informations de l'offre dans la deuxième feuille (détails de l'offre), puis l'approbateur peut afficher une liste déroulante pour voir ce qui est ouvert et doit être approuvé. J'ai tout fonctionne, sauf, j'ai besoin de l'approbateur pour cliquer sur un bouton et il enverra le nom d'utilisateur de l'approbateur et la date à la cellule correspondante dans l'onglet Détails de l'offre. J'ai créé une clé, dans H1, qui permettra au code de trouver la ligne correcte. La colonne B de la page des détails de l'offre correspond à ce qui se trouve dans l'onglet Résumé de H1.Bouton de commande pour les approbations sur différentes feuilles

J'ai ce code que j'ai écrit ci-dessous, mais cela ne fonctionne pas. Les cellules où le nom d'utilisateur doit aller dans la colonne M sur la feuille de détail de l'offre (une fois qu'il trouve la bonne ligne basée sur la clé dans le résumé). Il doit être codé en dur, donc je peux le garder à des fins de vérification.

Si cela n'a pas de sens faites le moi savoir et je vais essayer de clarifier.

Merci!

Private Sub CommandButton1_Click() 
Dim rng As Range 
Dim cell As Object 
With Sheets("Offer Details") 
    Set rng = Sheets("Offer Details").Range("B1:B1000") 
    For Each cell In rng 
     If cell.Value = Sheets("Offer Details").Cells(1, 8) Then 
      cell.Offset(0, 12).Value = Environ("USERNAME") 
      Exit For 
     End If 
    Next 
End With 
End Sub 
+0

'Cell' sera dans la colonne' B'. Si vous compensez cela par 12 colonnes, ne serait-ce pas la colonne 'N'? De plus, puisque vous utilisez 'With Sheets (" Détails de l'offre ")', dans cette instruction 'With', vous n'avez pas besoin de le répéter. Vous pouvez simplement utiliser un '.' leader, c'est-à-dire' Set rng = .Range ("B1: B1000") '. – BruceWayne

Répondre

0

Vous pouvez le faire si vous avez besoin Colum "M" être à chaque fois, la base de votre code:

Private Sub CommandButton1_Click() 
Dim rng As Range 
Dim cell As Object 
Dim inc as Integer 
With Sheets("Offer Details") 
    Set rng = .Range("B1:B1000") 
    For Each cell In rng 
     inc = inc + 1 
     If cell.Value = .Cells(1, 8) Then 
      .Range("M" & inc) = Environ("USERNAME") 
      Exit For 
     End If 
    Next 
End With 
End Sub 
+0

Pour une raison quelconque, cela ne fonctionne toujours pas. Quand j'appuie sur le bouton, rien ne se passe. Aucune suggestion? – Lisa

+0

Peu importe, je viens de spécifier la feuille et cela a fonctionné. Merci beaucoup! – Lisa

+0

De rien. Si le problème est résolu et si la réponse est bonne, pouvez-vous marquer la réponse? –