Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 06/10/2024, à 15:34

Rafbor

Re : [Résolu] Message erreur sur variable en zBasic

Partage ton fichier si tu veux que je regarde.


Xubuntu 22.04 - Mes projets sur Github

Hors ligne

#27 Le 06/10/2024, à 16:59

claudius723

Re : [Résolu] Message erreur sur variable en zBasic

Est ce que cela te convient ?

Sub EnregistrerSaisieAdherents2025
Dim oSheetS, oSheetD, oCell as Object
Dim nRowD as Long
Dim sRowD As string
'source
oSheetS=ThisComponent.CurrentController.ActiveSheet
'destination
oSheetD=ThisComponent.Sheets.getByName("Adherents2025")
nRowD =3           'ligne5
'cherche si adhérent exisre déjà
While oSheetD.GetCellByPosition(0, nRowD).String <> ""
If oSheetD.GetCellByPosition(0, nRowD).String = oSheetS.getCellRangeByName("C5").String Then
 			Msgbox "Adhérent existe déjà"
			exit sub
		endif
		nRowD = nRowD + 1
'
'cherche ligne vide
nRowD = 1         'ligne 2
Wile oSheetD.GetCellByPosition(0,nRowD).String<>""
nRowD = nRowD +1
sRowD=CStr(nRowD +1) 'transforme le n° de ligne en chaine, en incrémentant car pour la ligne 1, l'index est 0
'recopie Nom prénom
oSheetD.GetCellRangeByName("A" & sRowD).String=oSheetS.getCellRangeByName("C5").String
'recopie Adresse
oSheetD.GetCellRangeByName("B" & sRowD).String=oSheetS.getCellRangeByName("C7").String
'recopie Code Postal
oSheetD.GetCellRangeByName("C" & sRowD).String=oSheetS.getCellRangeByName("C9").String
'recopie Statut
oSheetD.GetCellRangeByName("D" & sRowD).String=oSheetS.getCellRangeByName("C11").String
'recopie E-mail
oSheetD.GetCellRangeByName("E" & sRowD).String=oSheetS.getCellRangeByName("C13").String
'recopie Tél. fixe
oSheetD.GetCellRangeByName("F" & sRowD).String=oSheetS.getCellRangeByName("C15").String
'recopie Tél. mobile
oSheetD.GetCellRangeByName("G" & sRowD).String=oSheetS.getCellRangeByName("C17").String
'recopie Fonction
oSheetD.GetCellRangeByName("H" & sRowD).String=oSheetS.getCellRangeByName("C19").String
'recopie Section
oSheetD.GetCellRangeByName("I" & sRowD).String=oSheetS.getCellRangeByName("C21").String
'recopie Date de naissance
oSheetD.GetCellRangeByName("R" & sRowD).String=oSheetS.getCellRangeByName("C23").String
'recopie Age
oSheetD.GetCellRangeByName("S" & sRowD).String=oSheetS.getCellRangeByName("C25").String
'recopie Cotisation
oSheetD.GetCellRangeByName("J" & sRowD).String=oSheetS.getCellRangeByName("O5").String
'recopie Nombre carnets
oSheetD.GetCellRangeByName("K" & sRowD).String=oSheetS.getCellRangeByName("O7").String
'recopie Dons
oSheetD.GetCellRangeByName("L" & sRowD).String=oSheetS.getCellRangeByName("O11").String
'recopie Revue
oSheetD.GetCellRangeByName("M" & sRowD).String=oSheetS.getCellRangeByName("O13").String
'recopie Total tombola
oSheetD.GetCellRangeByName("N" & sRowD).String=oSheetS.getCellRangeByName("O15").String
'recopie Total gébéral
oSheetD.GetCellRangeByName("O" & sRowD).String=oSheetS.getCellRangeByName("O17").String
'recopie Règlement
oSheetD.GetCellRangeByName("P" & sRowD).String=oSheetS.getCellRangeByName("O19").String
'recopie Date cotisation
oSheetD.GetCellRangeByName("Q" & sRowD).String=oSheetS.getCellRangeByName("O21").String
'recopie N° carnets
oSheetD.GetCellRangeByName("U" & sRowD).String=oSheetS.getCellRangeByName("O9").String
'recopie N° carnets
oSheetD.GetCellRangeByName("V" & sRowD).String=oSheetS.getCellRangeByName("P9").String
'recopie N° carnets
oSheetD.GetCellRangeByName("W" & sRowD).String=oSheetS.getCellRangeByName("Q9").String
'recopie N° carnets
oSheetD.GetCellRangeByName("X" & sRowD).String=oSheetS.getCellRangeByName("R9").String
'tri
Tri ("Adherents2025",  "A2:S" & sRowD)
	Msgbox "Adhérent ajouté"
End sub

Sub Tri(Adherents2025 As string, sPlage As string)
	Dim oSheet
	Dim oRange
	Dim oSortFields(0) as new com.sun.star.util.SortField
	Dim oSortDesc(0) as new com.sun.star.beans.PropertyValue
	oSheet = ThisComponent.Sheets.getByName(sNomFeuille)
	REM Plage à trier
	oRange = oSheet.getCellRangeByName(sPlage)
	REM Tri par la colonne 
	oSortFields(0).Field = 0 ' 1ère colonne de la plage
	oSortFields(0).SortAscending = True
	REM Description du tri
	oSortDesc(0).Name = "SortFields"
	oSortDesc(0).Value = oSortFields()  
	REM Effectuer le tri
	oRange.Sort(oSortDesc())
End Sub

Cordialement
Claudius723

Hors ligne

#28 Le 06/10/2024, à 18:15

Rafbor

Re : [Résolu] Message erreur sur variable en zBasic

Claudius, sans tester je vois des erreurs, tu as mal recopié..
Tu as oublié l'instruction Wend pour fermer la 1ère boucle While.
Pareil pour la 2ème boucle et en plus tu as écris Wile au lieu de While

A mon avis tu t'attaques à un projet trop gros pour toi, commence par apprendre les bases du langage, on ne peut pas tout faire à ta place, ou alors fait le faire par un pro, vous avez sûrement des ressources financières dans l'asso.


Xubuntu 22.04 - Mes projets sur Github

Hors ligne

#29 Le 09/10/2024, à 16:26

claudius723

Re : [Résolu] Message erreur sur variable en zBasic

Bonjour Rafbor, j'ai corrigé suivant tes remarques et tout est rentré dans l'ordre. Je n'ai toujours pas adapté la "Recherche occurrences", mais suivant tes conseils je devrais y arriver !!
A l'attention de Dude, je ne peux toujours pas me connecter au forum OpenOffice, j'ai bien utilisé le lien , mais aucun retour, pourtant j'aurais bien besoin de conseils, car  zBasic me joue des tours.
Bien à vous.


Cordialement
Claudius723

Hors ligne

#30 Le 02/12/2024, à 19:03

claudius723

Re : [Résolu] Message erreur sur variable en zBasic

Bonjour Rafbor, je reviens vers toi au sujet de la macro que tu m'a développé, elle fonctionne très bien la où je  l'ai adaptée, sauf que les nombres retranscrits sont tous avec une apostrophe , au format texte, y a t'il une solution pour les avoir en format nombre standard ? j'ai tout essayé et cela vient bien de la macro, c'est la galère pour les calculs !!
Merci pour la solution si il y en a une.


Cordialement
Claudius723

Hors ligne

#31 Le 02/12/2024, à 20:18

Rafbor

Re : [Résolu] Message erreur sur variable en zBasic

Bonsoir, pour les valeurs numériques, essaie de remplacer "String" par "Value" dans le code, afin de ne recopier que la valeur de la cellule.
Si la cellule destination est déjà formatée au format nombre ou monnaie, il devrait être conservé.
Exemple pour la colonne N, ceci

oSheetD.GetCellRangeByName("L" & sRowD).String=oSheetS.getCellRangeByName("O11").String

devient cela

oSheetD.GetCellRangeByName("L" & sRowD).Value=oSheetS.getCellRangeByName("O11").Value

Xubuntu 22.04 - Mes projets sur Github

Hors ligne

#32 Le 03/12/2024, à 05:26

claudius723

Re : [Résolu] Message erreur sur variable en zBasic

Merci Rafbor, tout fonctionne parfaitement, je n'ai plus cette satanée apostrophe. Ta modification est géniale !!!!!
Je vais marquer Résolu
A bientôt


Cordialement
Claudius723

Hors ligne