Débutant VBA à besoin d'aide !! :)

julou

XLDnaute Nouveau
bonjour à tous !! j'ai commencé des études à l'université et j'ai le droit à des supers cours d'informatique.

dès mon premier quadrimestre, on m'initie au codage VBA (les grosses bases)
je dois donc maintenant faire un gros travail qui me demande d'utilisé access et excel

Dans mon fichier excel, on me demande de faire quelques macros VBA et je bloque sur une macro en particulier :

j'ai créé un bouton permettant de lancer la macro mais j'aimerai que celle-ci commence à la première cellule vide de la colonne A. je vous met un screenshot de ma feuille pour que vous visualisiez la chose

Microsoft Excel - info.xlsm.jpg



voici mon code:


Sub bonlivraison()

Dim i As Integer

For i = A1 To Range("A65536").End(xlUp).Row

If ActiveCell.Value = "" Then


' Encode le n° de matricule du bon
Matricule_livraison = InputBox("Entrez le numéro de matricule du bon")
ActiveCell.FormulaR1C1 = Matricule_livraison
ActiveCell.Offset(0, 1).Select

' Encode le lieu de livraison du produit

Lieu_livraison = InputBox("Entrez le lieu de livraison du bon [port]")
ActiveCell.FormulaR1C1 = Lieu_livraison
ActiveCell.Offset(0, 1).Select
' Encode la date d'arrivée du produit
Dim Date_D_arrivée As Date
Date_D_arrivée = InputBox("Entrez la date d'arrivé du produit selon le format jj/mm/aaaa")
ActiveCell.FormulaR1C1 = Date_D_arrivée

'code pour que la date de la colonne D (date d'arrivée du produit) impact sur la colonne E (reçu ou non-reçu)
Dim dateprog As Date
dateprog = DateValue(Now)

For ligne = 2 To 27
colonne = "D"
colonne2 = "E"
If Range(colonne & ligne).Value > dateprog Then Range(colonne2 & ligne).Value = "Non-Reçu"
If Range(colonne & ligne).Value < dateprog Then Range(colonne2 & ligne).Value = "Reçu"

Next ligne

ActiveCell.Offset(1, -4).Select

Else
Selection.Offset(1, 0).Select
Next i

End Sub




malheuresement j'ai un message d'erreur me disant "next sans for".. je pense qu'il y a un problème avec mon for imbriqué mais je ne trouve pas la solution...
 
Dernière édition:

julou

XLDnaute Nouveau
Re : Débutant VBA à besoin d'aide !! :)

youpi !! j'ai encore un souci :p
Microsoft Excel - informatique.xlsm_3.jpg
j'ai un code de base qui marche et qui s'actionne avec un bouton :
Public Sub ajouter_membre()

Dim a As Integer

a = Range("A65536").End(xlUp).Row + 1


If Cells(2, 1) = "" Then

Cells(2, 1) = "1"
Cells(2, 2) = InputBox("Entrez le nom d'équipage")
Cells(2, 3) = InputBox("Entrez le prénom")
Cells(2, 4) = InputBox("Entrez le nom")
Cells(2, 5) = InputBox("Entrez l'adresse du membre")
Cells(2, 6) = InputBox("Entrez le numero de GSM du membres", "Choix", "000 0000000")
Cells(2, 7) = InputBox("entrez la position hiérachique du membre")
Else

Cells(a, 1) = Cells(a - 1, 1) + 1

' Encode le nom d'équipage
Cells(a, 2) = InputBox("Entrez le nom d'équipage")

' Encode le prénom du membre
Cells(a, 3) = InputBox("Entrez le prénom")

' Encode le nom du membre
Cells(a, 4) = InputBox("Entrez le nom")

' Encode l'adresse du membre
Cells(a, 5) = InputBox("Entrez l'adresse du membre")

' Encode le numéro de gsm du membre
Cells(a, 6) = InputBox("Entrez le numero de GSM du membres", "Choix", "000 0000000")

' Encode la position hiérarchique du membre
Cells(a, 7) = InputBox("entrez la position hiérachique du membre")

End If

End Sub


et j'ai voulu rajouter une boucle pour que mon code ajoute 4 membres quand on la lance (car j'ai 4 membres par équipages) :

Public Sub ajouter_membre()
Dim numero As Integer
numero = 1 'numéro de départ
Do While numero = 4

Dim a As Integer

a = Range("A65536").End(xlUp).Row + 1


If Cells(2, 1) = "" Then

Cells(2, 1) = "1"
Cells(2, 2) = InputBox("Entrez le nom d'équipage")
Cells(2, 3) = InputBox("Entrez le prénom")
Cells(2, 4) = InputBox("Entrez le nom")
Cells(2, 5) = InputBox("Entrez l'adresse du membre")
Cells(2, 6) = InputBox("Entrez le numero de GSM du membres", "Choix", "000 0000000")
Cells(2, 7) = InputBox("entrez la position hiérachique du membre")
Else

Cells(a, 1) = Cells(a - 1, 1) + 1

' Encode le nom d'équipage
Cells(a, 2) = InputBox("Entrez le nom d'équipage")

' Encode le prénom du membre
Cells(a, 3) = InputBox("Entrez le prénom")

' Encode le nom du membre
Cells(a, 4) = InputBox("Entrez le nom")

' Encode l'adresse du membre
Cells(a, 5) = InputBox("Entrez l'adresse du membre")

' Encode le numéro de gsm du membre
Cells(a, 6) = InputBox("Entrez le numero de GSM du membres", "Choix", "000 0000000")

' Encode la position hiérarchique du membre
Cells(a, 7) = InputBox("entrez la position hiérachique du membre")

End If

numero = numero + 1
Loop
End Sub

mais rien ne ce passe, meme pas de message d'erreur !! :eek: Que faire ?!? la boucle est mal placée, mais je comprends pas...

encore merci

jules
 

julou

XLDnaute Nouveau
Re : Débutant VBA à besoin d'aide !! :)

Donc !! voici un fichier avec une seule feuille contenant un code permettant la saisie des données et leur placement automatique (un code du même genre que l'on retrouve plus haut dans la discussion) . Le code fonctionne, j'aimerai juste rajouter une boucle pour qu'il ajoute 4 membres : soit qu'il recommence 4 fois le code.

mon code de base est le suivant :

Public Sub ajouter_membre()
Dim a As Integer

a = Range("A65536").End(xlUp).Row + 1


If Cells(2, 1) = "" Then

Cells(2, 1) = "1"
Cells(2, 2) = InputBox("Entrez le nom d'équipage")
Cells(2, 3) = InputBox("Entrez le prénom")
Cells(2, 4) = InputBox("Entrez le nom")
Cells(2, 5) = InputBox("Entrez l'adresse du membre")
Cells(2, 6) = InputBox("Entrez le numero de GSM du membres", "Choix", "000 0000000")
Cells(2, 7) = InputBox("entrez la position hiérachique du membre")
Else

Cells(a, 1) = Cells(a - 1, 1) + 1

' Encode le nom d'équipage
Cells(a, 2) = InputBox("Entrez le nom d'équipage")

' Encode le prénom du membre
Cells(a, 3) = InputBox("Entrez le prénom")

' Encode le nom du membre
Cells(a, 4) = InputBox("Entrez le nom")

' Encode l'adresse du membre
Cells(a, 5) = InputBox("Entrez l'adresse du membre")

' Encode le numéro de gsm du membre
Cells(a, 6) = InputBox("Entrez le numero de GSM du membres", "Choix", "000 0000000")

' Encode la position hiérarchique du membre
Cells(a, 7) = InputBox("entrez la position hiérachique du membre")

End If
End Sub

et voici ce que je ajouter mais qui ne marche pas :

Public Sub ajouter_membre()
Dim numero As Integer
numero = 1 'numéro de départ
Do While numero = 4

Dim a As Integer

a = Range("A65536").End(xlUp).Row + 1


If Cells(2, 1) = "" Then

Cells(2, 1) = "1"
Cells(2, 2) = InputBox("Entrez le nom d'équipage")
Cells(2, 3) = InputBox("Entrez le prénom")
Cells(2, 4) = InputBox("Entrez le nom")
Cells(2, 5) = InputBox("Entrez l'adresse du membre")
Cells(2, 6) = InputBox("Entrez le numero de GSM du membres", "Choix", "000 0000000")
Cells(2, 7) = InputBox("entrez la position hiérachique du membre")
Else

Cells(a, 1) = Cells(a - 1, 1) + 1

' Encode le nom d'équipage
Cells(a, 2) = InputBox("Entrez le nom d'équipage")

' Encode le prénom du membre
Cells(a, 3) = InputBox("Entrez le prénom")

' Encode le nom du membre
Cells(a, 4) = InputBox("Entrez le nom")

' Encode l'adresse du membre
Cells(a, 5) = InputBox("Entrez l'adresse du membre")

' Encode le numéro de gsm du membre
Cells(a, 6) = InputBox("Entrez le numero de GSM du membres", "Choix", "000 0000000")

' Encode la position hiérarchique du membre
Cells(a, 7) = InputBox("entrez la position hiérachique du membre")

End If

numero = numero + 1
Loop
End Sub

il n'y a pas de message d'erreur mais rien en ce passe... :(

quelqu'un peut-il (encore) m'aider? :)

jules
 

Pièces jointes

  • Classeur.xlsm
    14.8 KB · Affichages: 34
  • Classeur.xlsm
    14.8 KB · Affichages: 34
  • Classeur.xlsm
    14.8 KB · Affichages: 38

sourcier08

XLDnaute Occasionnel
Re : Débutant VBA à besoin d'aide !! :)

Bonjour à tous,

Essayes avec ça :

Code:
Public Sub ajouter_membre()
   
Dim a As Integer, i As Integer

a = Range("A65536").End(xlUp).Row + 1


For i = a To a + 3 'répéter 4 fois la macro


If Cells(2, 1) = "" Then

    Cells(2, 1) = "1"
    Cells(2, 2) = InputBox("Entrez le nom d'équipage")
    Cells(2, 3) = InputBox("Entrez le prénom")
    Cells(2, 4) = InputBox("Entrez le nom")
    Cells(2, 5) = InputBox("Entrez l'adresse du membre")
    Cells(2, 6) = InputBox("Entrez le numero de GSM du membres", "Choix", "000 0000000")
    Cells(2, 7) = InputBox("entrez la position hiérachique du membre")
    Else
    
    Cells(a, 1) = Cells(a - 1, 1) + 1

    ' Encode le nom d'équipage
    Cells(a, 2) = InputBox("Entrez le nom d'équipage")

    ' Encode le prénom du membre
    Cells(a, 3) = InputBox("Entrez le prénom")

    ' Encode le nom du membre
    Cells(a, 4) = InputBox("Entrez le nom")
    
    ' Encode l'adresse du membre
    Cells(a, 5) = InputBox("Entrez l'adresse du membre")

    ' Encode le numéro de gsm du membre
    Cells(a, 6) = InputBox("Entrez le numero de GSM du membres", "Choix", "000 0000000")

    ' Encode la position hiérarchique du membre
    Cells(a, 7) = InputBox("entrez la position hiérachique du membre")
    
   End If
   
a = a + 1

Next i

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 298
Messages
2 086 977
Membres
103 416
dernier inscrit
SEB28110